Methods, systems, and programming for computer display of images, text, and/or digital content

ABSTRACT

A bitmap of a shape, such as a font, can be subpixel optimized by producing for each of a display&#39;s subpixels a coverage value representing the percent of its area covered by the shape being represented and by distributing, to prevent color imbalance, an amount of a given subpixel&#39;s coverage value to nearby subpixels of different colors as a function of the percent of the given subpixel&#39;s coverage value that causes color imbalance. Web pages can be displayed with scaled-down and subpixel optimized images. A given layout of a Web page can be displayed at each of at least two different selected scale factors, with the font bitmaps used to represent characters in the display at each scale factor having their shape and pixel alignment selected to improve readability for the particular pixel size at which they are displayed at each such scale factor.

RELATED APPLICATIONS

[0001] This application is a continuation-in-part of and claims priorityunder 35 U.S.C. §119(e) of the following co-pending U.S. provisionalapplications:

[0002] BIT01-1PRO1

[0003] APPLICANT: Sampo J. Kaasila et al.

[0004] TITLE: Methods, Systems, and Programming For Browsing The Web OrViewing Other Sorts of Media or Computer Output

[0005] SERIAL NO: 60/288,287

[0006] FILING DATE: May 2, 2001

[0007] BIT01-1PRO-A

[0008] APPLICANT: Sampo J. Kaasila et al.

[0009] TITLE: Methods, Systems, and Programming For Producing andDisplaying Subpixel-Optimized Font Bitmaps Using Non-Linear ColorBalancings

[0010] SERIAL NO: 60/296,275

[0011] FILING DATE: Jun. 5, 2001

[0012] BIT01-1PR0-A2

[0013] APPLICANT: Sampo J. Kaasila et al.

[0014] TITLE: Methods, Systems, and Programming For Producing andDisplaying Subpixel-Optimized Font Bitmaps Using Non-Linear ColorBalancings

[0015] SERIAL NO: 60/322,922

[0016] FILING DATE: Sep. 17, 2001

[0017] BIT01-1PRO-B

[0018] APPLICANT: Sampo J. Kaasila et al.

[0019] TITLE: Methods, Systems, and Programming For Producing AndDisplaying Subpixel-Optimized Images and Digital Content Including SuchImages

[0020] SERIAL NO: 60/296,237

[0021] FILING DATE: Jun. 5, 2001

[0022] BIT01-1PRO-C

[0023] APPLICANT: Sampo J. Kaasila et al.

[0024] TITLE: Methods, Systems, and Programming For Displaying MediaIncluding Both Images And Text In A Subpixel-Optimized Manner

[0025] SERIAL NO: 60/296,274

[0026] FILING DATE: Jun. 5, 2001

[0027] BIT01-1PRO-D

[0028] APPLICANT: Sampo J. Kaasila et al.

[0029] TITLE: Methods, Systems, and Programming For Displaying MediaIncluding Text In A Scaled And/Or Subpixel-Optimized Manner

[0030] SERIAL NO: 60/296,284

[0031] FILING DATE: Jun. 5, 2001

[0032] BIT01-1PRO-E

[0033] APPLICANT: Sampo J. Kaasila et al.

[0034] TITLE: Methods, Systems, and Programming For Displaying Media InA Scaled-Down Manner

[0035] SERIAL NO: 60/296,231

[0036] FILING DATE: Jun. 5, 2001

[0037] BIT01-1PRO-F

[0038] APPLICANT: Sampo J. Kaasila et al.

[0039] TITLE: Methods, Systems, and Programming For Displaying MediaScaled-Down By A Variable Scale Factor

[0040] SERIAL NO: 60/296,224

[0041] FILING DATE: Jun. 5, 2001

[0042] BIT01-1PRO-G

[0043] APPLICANT: Sampo J. Kaasila et al.

[0044] TITLE: Methods, Systems, and Programming Involved In PreparingMedia For Display On One Computer And Displaying It On Another Computer

[0045] SERIAL NO: 60/296,426

[0046] FILING DATE: Jun. 5, 2001

[0047] BIT01-1PRO-H

[0048] APPLICANT: Sampo J. Kaasila et al.

[0049] TITLE: Methods, Systems, and Programming Involved In DisplayingText And/Or Images In A Scaled Down Or Subpixel Optimized Manner

[0050] SERIAL NO: 60/296,273

[0051] FILING DATE: Jun. 5, 2001

[0052] BIT01-1PRO-I

[0053] APPLICANT: Sampo J. Kaasila et al.

[0054] TITLE: Methods, Systems, and Programming Involved In The SupplyOf Fonts Over A Computer Network

[0055] SERIAL NO: 60/296,283

[0056] FILING DATE: Jun. 5, 2001

[0057] BIT01-1PRO-J

[0058] APPLICANT: Sampo J. Kaasila et al.

[0059] TITLE: Methods, Systems, and Programming Involved In Display OfSubpixel Optimized GUI And/Or Multimedia Elements

[0060] SERIAL NO: 60/296,281

[0061] FILING DATE: Jun. 5, 2001

[0062] BIT01-1PRO-K

[0063] APPLICANT: Sampo J. Kaasila et al.

[0064] TITLE: Methods, Systems, and Programming Involved In Display OfDigital Content In An Orientation Different Than An Orientation At WhichOperating System Can Display

[0065] SERIAL NO: 60/296,327

[0066] FILING DATE: Jun. 5, 2001

FIELD OF THE INVENTION

[0067] The present invention relates to methods, systems, andprogramming for computer display of images, text, and/or digitalcontent.

BACKGROUND OF THE INVENTION

[0068] This patent application has many aspects that relate to theoptimization of using computing devices with small or low resolutionscreens, such as handheld computers, cellphone computers, or computerswith wrist or head mounted displays. A good portion of this optimizinghas been done to improve the use of such small screen devices forbrowsing the World Wide Web or similar media, although many of itsfeatures can be used when viewing other types of screen content.

[0069] Another portion of this optimization has been focused onimproving the ability to browse such media through relatively lowbandwidth links, such as those that would be found on current wirelesslinks. It should be appreciated, however, that many aspects of theinventions disclosed in this application are not limited to use forthese purpose.

[0070] For example, some of the features that are designed to make iteasier for users to view portions of Web pages at a larger size could beused to make reading the Web on traditional computers easier on the eyeor easier to read at greater distances.

[0071] At the time this application is being filed there are multiplehandheld computers that have approximately 240 by 320 pixel screens thatmeasure approximately four inches diagonally. These include the CompaqiPaq H3650 Pocket PC, the Casio Cassiopeia, and the Hewlett-PackardJornado 525. Unfortunately such a resolution would be too low to displaymost current Web pages on. Currently most Web pages can be viewed with640×480 resolution screen (although a few web sites cannot even beproperly viewed at this resolution). It would be desirable to be able toview most web pages with such hand held devices.

[0072] The manufacturers of liquid crystal displays are now capableof-making screens having substantially higher resolutions than thosethat are currently on the market. Makers of organic LED displays claimthey can achieve even higher resolutions. This means that a four inchdiagonal screen of the size currently in the handheld computers listedabove could have a resolution of 480 by 640 or higher. Although suchscreens would provide an acceptable resolution for many web sites, evena higher effective resolution would be desirable to view many web pages.

[0073] In addition, in order for such screens to be seen at a relativelyhigh resolution, they would have to be held close to a user's eyes.Although this might be satisfactory for many applications, users mightoften find it tiring or inconvenient to constantly hold a handheldcomputer close one eyes.

[0074] Such advances in display resolution would also mean that a 320 by240 pixel screens could be made with a diagonal length of two inches orless. Such a display would be about the size of the display commonlycontained in many present-day cellphones, and could also fit onto awristwatch. Such displays would make many forms of applicationscurrently used on hand held computers available on cellphones,wristwatches or other similarly small format computers. Unfortunatelythey would have the problem of both having a relatively low resolutionthat would tend to make it difficult for them to view most web pages,and of being so physically small that for a user to be able to see theirresolution they would have to be held very close to the user's eyes.Again, holding such a device close to a user's eyes might besatisfactory at certain times, but over long periods of time, or incertain situations it might be inconvenient.

[0075] Currently there are several companies that provide head mounteddisplays that enable a person to see an image of a computer screen,either as a result of light reflected into the user's eyes through adevice that appears somewhat like a pair of glasses, or from a mirrorplaced above, below, or off to the side of the user's eyes. To make iteasy for user to interact with their surroundings while using such ahead mounted display, it is often desirable to have such projectedcomputer screens take up a relatively small portion of the user's opticfield. Thus, users of such displays might face many of the same problemsas would users of small handheld screens.

[0076] Some aspects of the invention relates to methods for optimizingthe browsing of the Web or application screen output on a computer withrelatively limited computational power, memory, or bandwidth to theInternet. For example, currently a standard Web browser of the type usedin most desktop and laptop computers requires many megabytes of memoryand a relatively large amount of computational power. They also requirea connection to the Internet having at least the speed of a high-speedmodem to work effectively with a type of Web content contained in manyof the World Wide Web's more frequently used Web pages. Unfortunately,many handheld computers either do not have the storage or computationalcapacity to be able to effectively view many such web pages. Also mostcommonly available wireless systems have a bandwidth that issubstantially below that which would be desirable for viewing many Webpages. As a result of these factors, one of the focus of some of theinnovations contained in this application relate to methods for enablingcomputers with limited storage, commutation, or bandwidth to betterbrowse the World Wide Web or similar media.

SUMMARY OF THE INVENTION

[0077] Summary of the Invention Re Innovation Group A

[0078] According to a first aspect of the present invention a method ofproducing a sub-pixel resolution representation of a shape suitable fordisplay on a sub-pixel addressed screen, that is a screen having pixelscomprised of separately-addressable, differently-colored sub-pixels, isprovided. The method comprises producing a scaled subpixel optimizedimage of a bitmap image by associating a luminosity value with eachsub-pixel of the scaled image as a function of the percent of the areaof the sub-pixel's area in the image that is covered by the shape and acolor balancing function designed to distribute a portion of asub-pixel's luminosity value that otherwise would cause color imbalanceto nearby sub-pixels of different colors. The percent of a subpixel'sluminosity values that is so distributed is a function of the percent ofthe subpixel's luminosity value which causes color imbalance.

[0079] In some embodiments of this first aspect of the invention theshape of which the subpixel optimized image is made is a font.

[0080] In some embodiments of the first aspect of the invention thesub-pixel resolution bitmap image is created to represent an image of ashape which can be shown with a selected foreground color and a selectedbackground color. The luminosity value calculated for an individualsub-pixel is an alpha value. This alpha value determines the relativeextent to which its associated sub-pixel in an image having a foregroundand a background color will have the component color value of theforeground color and/or of the background color that corresponds to thesub-pixel's color.

[0081] Thus, in such an embodiment, each of the three alpha valuesassociated with a given pixel's three subpixels represents the extent towhich the sub-pixel associated with that alpha value should derive itsluminosity from a foreground color or a background color. The luminosityof a sub-pixel of a given color can be determined by the luminosity ofthe subpixel's color in the foreground color times the subpixel's alphavalue plus the value of that subpixel's color in the background colortimes one minus the subpixel's alpha value.

[0082] According to a second aspect of the present invention a method ofproducing a sub-pixel resolution image suitable for display in an imagearea of a sub-pixel addressed screen where the image is of a shapedefined at a resolution higher than the resolution of sub-pixels withthe image area, is provided. The method determines a coverage value foreach sub-pixel associated with the given pixel in the image area, whichsub-pixel coverage value corresponds to the percentage of the sub-pixelwhich is covered by the shape. The method determines a pixel coveragevalue for the given pixel that is a function of the coverage valuescalculated for one or more of the subpixels with the given pixel. Themethod adds to a luminosity value calculated for each sub-pixel of thegiven pixel a value corresponding to the given pixel's coverage value.For each sub-pixel in the given pixel the method (a) determines adifferential coverage value for each subpixel corresponding to thedifference between the subpixel's coverage value and the given pixel'scoverage value and (b) adds to the luminosity value calculated for eachgiven sub-pixel and one or more nearby sub-pixels a value correspondingto a portion of the given sub-pixel's differential coverage value, whereat least some of the nearby sub-pixels are located outside of the givensubpixel's pixel.

[0083] Traditional techniques for producing sub-pixel optimized imagesof characters and other shapes can be used to determine a coverage valuefor a sub-pixel as a function of the extent to which the arearepresented by the subpixel in the character image is covered by thecharacter's shape.

[0084] In the prior art systems color balance distributions have beenperformed with a center-weighted filter function, which, for example,distributes all of the luminosity associated with the coverageassociated with each sub-pixel over an area of five sub-pixels centeredaround the given sub-pixel itself. The given sub-pixel gets the greatestportion of this luminosity, the two sub-pixels on either side of itreceive a lesser amount, and the two sub-pixels on either side of themreceive an even lesser amount. Such a distribution of all luminosityvalues does a good job of achieving color balance, but it produces arelatively large blurring of the spatial resolution achieved by thesubpixel resolution.

[0085] The advantage of this second aspect of the invention is that itreduces the amount of luminosity values distributed for color balancepurposes to approximately only that amount which is necessary to achievecolor balance, and, thus, increases the clarity of sub pixel optimizedimages.

[0086] In some embodiments of this second aspect of the invention theshape of which the subpixel optimized image is made is a font.

[0087] In some embodiments of the second aspect of the invention thepixel coverage values used can be maximum, minimum, average, or someother function of the value of one or more of a pixel's sub-pixels. Insome embodiments the pixel coverage value used in the non-linear schemeis the minimum. If the luminosity values that are added to a sub-pixelby the color balance filter would add up to more than the maximumluminosity of that sub-pixel, the subpixel's luminosity will be set toits maximum value.

[0088] In some embodiments of the second aspect of the invention theaddition to the luminosity value calculated for each given sub-pixel andone or more nearby sub-pixels includes adding a larger value to thegiven sub-pixel than to the nearby sub-pixels.

[0089] In some embodiments of the second aspect of the invention theaddition to the luminosity value calculated for each given sub-pixel andone or more nearby sub-pixels includes using a distribution filter thatdetermines the size of the portion of the given sub-pixel's differentialcoverage value for which a corresponding value is added to theluminosity value calculated for the given sub-pixel and each of thenearby sub-pixels.

[0090] In some embodiments different distribution filters are used forsub-pixels of different colors. This is done because sub-pixels ofdifferent colors make different degrees of visual impression upon theeye. The human eye sees a green sub-pixel much better than a red pixel,and a red pixel much better than a blue pixel. As a result, the use ofdifferent color balance filters is appropriate to achieve perceivedcolor balance between such different colors.

[0091] In some embodiments some of the distribution filters areasymmetrical, meaning that they distribute more to the luminosity valuesof nearby sub-pixels on one side of the given sub-pixel than to those ofnearby sub-pixels on the other side of the given sub-pixel. Although adifferent filter could be used for each different color in someembodiments, in an RGB display reasonable results can be obtained byusing the same symmetrical center-weighted distribution function fordistributing portions of the coverage value of red and green pixels, andan asymmetrical distribution filter for blue that tends to distributemost of the color intensity not distributed to its blue subpixel tosub-pixels to the blue pixel's left.

[0092] In some embodiments of the second aspect of the invention thesub-pixel resolution bitmap image is created to represent an image of ashape which can be shown with a selected foreground color and a selectedbackground color. The luminosity value calculated for an individualsub-pixel is an alpha value. This alpha value determines the relativeextent to which its associated sub-pixel in an image having a foregroundand a background color will have the component color value of theforeground color and/or of the background color that corresponds to thesub-pixel's color.

[0093] Some embodiments of the second aspect of the invention calculatethe luminosity values for each sub-pixel of a given pixel which valuesare used to define a calculated color value which can be any one of afirst number of values. Each calculated color value is mapped into acorresponding one of a second number of palette color values, where thesecond number is smaller than the first number and individual pixels inthe image are represented by a palette color value into which itscalculated color value has been mapped.

[0094] In some such embodiments a plurality of the palette color valuesare selected as a function of the frequency with which the givencalculated color values occur in a plurality of the different imagescreated by the method. A relatively large percentage of the combinationsof colors which define the three-colored alpha values calculated forpixels actually used in sub-pixel optimized fonts fall into a relativelysmall portion of the potential color space. This has allowed thedefinition of a palette of colors representing most such sub-pixel alphavalues that has a relatively limited number of entries. This decreasesthe number of bits required to define each pixel in an alpha valuerepresentation of a sub-pixel optimized font. This, in turn,substantially decreases the amount of bandwidth needed to downloadsub-pixel optimized bitmaps for use by those systems of the presentinvention in which such font bitmaps are downloaded.

[0095] In some embodiments non-gray calculated colors that differ incertain ways from any palette color are mapped into a substantially graypalette color. A plurality of gray scale values has been included in thecolor palette. The system maps into the closest grayscale value anythree-colored alpha values calculated for pixels when creating sub-pixeloptimized images which do not come sufficiently close in color space toany of the non-grayscale values in the palette. In these relatively fewcases, the effect is much as if whole-pixel anti-aliasing had been used.In cases where bandwidth and/or memory is tight, this occasionalreplacement of sub-pixel optimized resolution with traditionalanti-aliasing can be a desirable tradeoff.

[0096] Some aspects of the present invention relate to the method ofdisplaying fonts created by the above process in the display of digitalcontent.

[0097] Some aspects of the present invention relate to the method ofdownloading fonts created by the above process in the display of text.

[0098] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0099] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0100] Because of the rush with which this application has been filed,so as to enable the assignee of its inventions to more rapidly attemptto market its innovating, the claims are represented below in the formof a claim outline which has not been fully completed.

[0101] In each this outline an invention is described by a heading inall capitalized text. For some such inventions a more detailed and/oraccurate description is provided by text corresponding to possible claimlanguage. This claim language text is not capitalized. In the claimoutline, indentation is used to indicate claim dependence, with claimsdepending from the claim under which they are indented. Thus, forexample, if a given claim recites “a method as in claim X” the claim thegiven claim depends from is the nearest claim above the given claim inthe outline that is outdented (i.e., one heading level to the left)relative to the given claim.

[0102] Summary of the Invention Re Innovation Group B

[0103] According to a first aspect of the present invention method ofdisplaying digital content including text and/or images is provided. Thedigital content is represented by a mark-up language including tagswhich identify images contained in the content. The display is performedon a subpixel addressable screen having pixels comprised of separatelyaddressable differently colored sub pixels. The method comprises thefollowing steps. The digital content is accessed, including its images,from a device in which it is stored or from programming which generatesit dynamically; and displaying on the screen one or more of suchaccessed images at a first pixel scale in which the luminosity of eachdifferently colored sub-pixel of a given pixel is derived from adifferent area of the same image at a second, higher resolution, pixelscale.

[0104] In some embodiments of this first aspect of the invention theaccessing of such digital content is performed over a computer network.

[0105] In some such embodiments the accessing of such digital content isperformed over the Internet.

[0106] In some embodiments of this aspect of the invention the digitalcontent includes web pages.

[0107] In some embodiments the screen is part of a browser computercapable of browsing digital content. The browser computer includesbrowser programming which responds to user input requesting a givenportion of digital content by requesting that content from a anotherentity, either a storage device, another computer, or other programmingrunning on the browser computer. In response to the request from thebrowser programming, the digital content is read from memory ordynamically generated at a resolution higher than the first scale. Afterthe image has been read from memory or dynamically generated in responseto the user request, the image is scaled down to be first scale and theluminosities of differently colored sub-pixels are derived from adifferent area of the same image at the second, higher resolution,scale.

[0108] In some such dynamic scaling embodiments the image is read frommemory or dynamically generated on a server computer system. The scalingdown of an image to the first scale is performed by the server computersystem and

[0109] the scaled down image is downloaded to the browser, which thendisplays the scaled down image.

[0110] In some dynamic scaling embodiments the browser computercommunicates the user request over a computer network to a proxy server.The proxy server computer communicates the user request over aninternetwork to a server computer system which stores or dynamicallygenerates an image to be read. The server computer system sends one ofthe images to the proxy server. The scaling down of the image to thefirst scale is performed by the proxy server. The proxy server downloadsthe scaled down image to the browser, which then displays the scaleddown image.

[0111] In some dynamic scaling embodiments the scaling down of an imageto the first scale is performed by the browser computer, which thendisplays the scaled down image.

[0112] Some dynamic scaling embodiments allow a user of the browsercomputer to select one from a plurality of scale factors. The browsercomputer communicates the selected scale factor to the process whichscales down an image read from storage and causes the scaling process toscale down and subpixel optimize the image by a horizontal and verticalscale factor which varies as a function of the selected scale factor.

[0113] In some such embodiments in which the user can select the scalingfactor the serving computer is a remote computer relative to the browserand the scaling process is on the remote computer.

[0114] In some embodiments in which the user can select the scalingfactor the allowing of the user to select from one of a plurality ofscale factors can be performed after a given image has been read fromstorage or dynamically generated. It is then scaled down to the firstscale and subpixel optimized, and displayed, so as to cause the givenimage to be scaled, subpixel optimized, and displayed at a second,different scale factor.

[0115] In some embodiments of the first aspect of the invention theluminosity of each differently colored sub-pixel of a given pixel isdetermined by defining for the sub-pixel a plurality of coverage lineswhich fit within a window in a higher resolution representation of theimage, which window is different for each sub-pixel of a given pixel.The length of each coverage line which corresponds to given pixel in thehigher resolution image is calculated. The luminosity of the sub-pixelis determined as a function of the length of each coverage line whichcorresponds to each higher resolution pixel and the respectiveluminosity in the sub-pixel's color of that higher resolution imagepixel.

[0116] By a “continuous coverage function” we mean a function whichdetermines the extent to which the area of an original image associatedwith a given subpixel is covered by a given color or shape is determinednot as the function of a sampling function which tests whether or notthere is coverage at each of a plurality of discrete locations, butrather as a result of a mathematical function which determines boundarylocations at which the given coverage starts and stops in one or moredimensions, and calculates coverage as a function of lengths or areasbetween one or more such boundaries or between such boundaries and theboundary of the area in the image associated with a given subpixel.

[0117] Commonly when creating sub pixel optimized images of outlinefonts, the window in the character image associated with each subpixelfor purposes of initially calculating such a coverage value (i.e.,before color balance filtering) has substantially the same area andlocation relative to the character's image as the given subpixel itself,and the coverage boundaries used are commonly the boundaries defined bythe font outline and the boundaries of the sub pixel's associated areain the image.

[0118] On the other hand, commonly when creating subpixel optimizedimages of color bitmaps, the source image window associated with eachsubpixel of a given color often corresponds to an area of the sourceimage approximately equal to the size of an entire pixel centered arounda location in the original image corresponding to the given subpixel'slocation in the subpixel optimized representation of the original, orsource, image. Commonly the coverage calculated for such a subpixelcorresponds to the portion of the area associated with the subpixel thatis covered by one or more source image pixels, each having a colorcomponent value corresponding to that of the given sub pixel. Theboundaries used in determining such coverage include the boundaries ofsource image pixels as well as the boundaries of the source image windowassociated with the given sub pixel.

[0119] Such continuous coverage functions can be determined by measuringthe portions of the length of one or more scanning lines in each of oneor more dimensions within a subpixel's associated source image windowwhich are covered by different source image pixels. Continuous coveragefunctions can also be determined at a greater computational cost bycalculating the area of relevant coverage within a given subpixel'scorresponding source image window which is covered by different sourceimage pixels.

[0120] Some such coverage function embodiments of the invention allow auser of the browser computer to select one from a plurality of scalefactors. The selected scale factor is communicated to the process whichscales down an image and the scaling process scales down the image by ahorizontal and vertical scale factor which varies as a function of theselected scale factor.

[0121] Some such embodiments further allow a user of the browsercomputer to select one from a plurality of scale factors which includeone or more scale factors which are non-integer ratios of the screensize. They communicate the selected scale factor to the process whichscales down an image and they cause the scaling process to scale downthe image by a horizontal and vertical scale factor which varies as afunction of the selected scale factor.

[0122] One of the benefits of such continuous coverage functions is thatthey tend to provide relatively higher resolution coverage calculationsfor a given level of computation than many sampling algorithms used tocalculate coverage values, and thus they are better than such samplingalgorithms at calculating luminosity values for individual sub pixelsacross a range of different scaling factors.

[0123] Some embodiments of the first aspect of the invention allow auser to select from a plurality of trade-offs between color accuracy andpositional accuracy in the display of the scaled images. Theycommunicate the selected color/positional accuracy selection to theprocess which scales down an image and cause the scaling process toscale down the image by a method which varies the portion of an imagewhich is used to determine the luminosity of individual subpixels as afunction of the user selected color/positional accuracy selection.

[0124] In some such embodiments the image is a color image and one ofthe user selections is between a more-grayscale selection and one is aless-grayscale selection. When the more-grayscale selection is made, thescaled image is calculated from a set of pixel color values in which thevalues of individual pixels' different color components have beenadjusted toward the average of those color component values for the eachsuch individual pixel. When the less-grayscale selection is made thescaled image is calculated from a set of pixel color values in which thevalues of individual pixels different color components have been lessadjusted toward the average of those color component values for the eachsuch individual pixel. The individual subpixel luminosity values in thescaled image produced in response to the more-grayscale selection arebased more on the average whole pixel luminosities in the portion of theimage corresponding to the subpixel's own area than in scaled imagesproduced in response to the less-grayscale selection, in which theluminosity value of individual subpixels are based more on theluminosity of the subpixel's own color value in an pixels in a largerarea of the image.

[0125] According to a second aspect of the present invention a method ofproducing a sub-pixel resolution representation of an image suitable fordisplay on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels is provided. Themethod determines the luminosity of each subpixel in a given pixel ofthe subpixel resolution representation by defining for the sub-pixel aplurality of coverage lines which fit within a window in a higherresolution representation of the image, which window is different foreach sub-pixel of a given pixel. It calculates the length of eachcoverage line which corresponds to given pixel in the higher resolutionimage, and it determines the luminosity of the sub-pixel as a functionof the length of each coverage line which corresponds to each higherresolution pixel and the respective luminosity in the sub-pixel's colorof that higher resolution image pixel.

[0126] In some such embodiments the coverage lines associated with agiven sub-pixel include at least two coverage lines which run innon-parallel directions on the sub-pixel's window.

[0127] This aspect of the invention relates to a “line coverage” type ofthe continuous coverage functions discussed above.

[0128] According to a third aspect of the present invention a method ofproducing a sub-pixel resolution representation of an image suitable fordisplay on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels is provided. Themethod determines the luminosity of each sub pixel in a given pixel ofthe subpixel resolution representation by defining for the sub-pixel awindow in a higher resolution representation of the image, which windowis different for each sub-pixel of a given pixel, calculating the areaof each pixel in the higher resolution image which totally or partiallyfits within the sub-pixel's window, and determining the luminosity ofthe sub-pixel as a function of the included area calculated for eachsuch higher resolution image pixel and the respective luminosity in thesub-pixel's color of that high resolution image pixel. This aspect ofthe invention relates to an “area coverage” type of the continuouscoverage functions which are discussed above.

[0129] In some embodiments of such an area coverage method the windowassociated with each sub-pixel in the higher resolution image has a sizeequal to the portion of the higher resolution image corresponding to thesub-pixel's pixel and a center at the portion of the higher resolutionimage that corresponds to the center of the sub-pixel.

[0130] According to a fourth aspect of the present invention a method ofproducing a sub-pixel resolution representation of a source imagesuitable for display on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels isprovided. This method produces a scaled sub-pixel optimized image of abitmap image by associating a luminosity value with each subpixel of thescaled image. The luminosity values are calculated as a function of thewhole pixel luminosity of the one or more pixels in the source imagewhich cover a source image window corresponding to the area of thesubpixel, the percent of that window covered by each such source imagepixels, and a color balancing function that distributes subpixelluminosity values to reduce color imbalance.

[0131] In some embodiments of this fourth aspect of the invention thesource image is a gray scale image. In other embodiments the sourceimage is a color image.

[0132] In some embodiments of this fourth aspect of the invention theextent to which a given luminosity value associated with a givensubpixel's source image window is distributed to other subpixels is afunction of extent to which the luminosity value causes a colorimbalance.

[0133] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0134] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0135] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0136] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0137] Summary of the Invention Re Innovation Group C

[0138] According to a first aspect of the present invention a method ofdisplaying, on a subpixel addressed screen having pixels comprised ofseparately-addressable, differently-colored subpixels, digital content,including text and images is provided. The method comprises displayingon the screen, a scaled-down subpixel-optimized representation of one ormore of the images in which the luminosity of each differently coloredsubpixel of a given pixel is derived from a different area of the sameimage at a second, higher resolution, pixel scale. Also displayed on thescreen are scaled-down subpixel-optimized representations of each of oneor more character fonts of the text in which the luminosity of eachdifferently colored subpixel of a given pixel of the scaled-down imageof a given character shape is derived from a different area of a higherresolution image of that character.

[0139] In some embodiments of this first aspect of the invention thedigital content is represented by tagged text written in a mark-uplanguage that includes image tags that identify image files. The textdisplayed on the screen includes strings of characters from the taggedtext, and the images displayed on the screen are images represented byimage files identified by the image tags.

[0140] In some embodiments the digital content is a web page and thescaled-down and subpixel-optimized images and text allow a user to seethe web page on a subpixel addressed screen having a given whole-pixelresolution as if viewing the web page on a screen with a higherresolution.

[0141] In some embodiments of the first aspect of the invention a methodis provided wherein the digital content is screen output generated by asoftware application. The scaled-down and subpixel-optimized images andtext allow a user to see the screen output on a subpixel addressedscreen having a given whole-pixel resolution as if viewing the web pageon a screen with a higher resolution.

[0142] In some embodiments of the first aspect of the invention a methodis provided wherein the screen is part of a browser computer capable ofbrowsing digital content. The browser computer includes browserprogramming which responds to user input requesting a given portion ofdigital content by requesting that content from another entity, either astorage device, another computer, or other programming running on thebrowser computer. In response to the request from the browserprogramming, the digital content is read from memory or dynamicallygenerated at a resolution higher than the first scale. The scaled-downsubpixel-optimized representations of the images are calculated afterthe digital content's images have been read from memory or dynamicallygenerated in response to the user request. The size of the scaled-downsubpixel-optimized representations of character fonts is determined as afunction of the size identified for such fonts in the digital contentafter that digital content has been read from memory or dynamicallygenerated in response to the user request.

[0143] In some embodiments a browser computer communicates a userrequest for a given portion of digital content over a computer networkto a server computer system. The server computer system reads therequested digital content from memory or dynamically generates it.Calculation of the scaled-down and subpixel-optimized imagerepresentations is performed by the server computer system, and thescaled-down subpixel-optimized image representations and the digitalcontent's text are downloaded over the network to the browser computer,which then displays the scaled down images and text. The server computersystem which stores an image can include a multi-computer web server. Ifthe system on which the images are stored is a peer-to-peer system it isconsidered a server for purposes of this claim.

[0144] In some embodiments a browser computer communicates a userrequest for a given portion of digital content over a computer networkto a proxy server and the proxy server communicates the user requestover the network to a remote computer system. The server computer systemreceiving the request reads the requested digital content from memory ofdynamically generates it and sends the image to the proxy server overthe computer network. The calculation of the scaled-down andsubpixel-optimized image representations is performed by the proxyserver and the scaled-down subpixel-optimized image representations andthe digital content's text are downloaded over the network to thebrowser computer, which then displays the scaled down images and text.

[0145] In some embodiments the calculation of the scaled-down andsubpixel-optimized image representations is performed by the proxyserver, which then displays the scaled down image.

[0146] In some embodiments a method is provided which further includesenabling a user to select a desired display scale from a plurality ofpossible reduced-size scales each having a lower resolution than theresolution at which the image is read from memory or dynamicallygenerated. The scale factor used in the calculation of the scaled-downand subpixel-optimized representations of images and in the scaling downof character font sizes is determined by this user selected displayscale. This selection could be by allowing a user to select from a setor continuum of reduced-size scales or by allowing the user to select tozoom to a certain sized line or area.

[0147] According to a second aspect of the present invention a method ofdisplaying, on a subpixel addressed screen having pixels comprised ofseparately-addressable, differently-colored subpixels, digital contentthat includes both text and multicolor images is provided. The methoddisplays, on the screen, subpixel-optimized representations of both thedigital content's multicolor images and text in which the luminance ofindividual subpixels of a pixel conveys information from differentportions of the image or text character represented by that pixel.Different algorithms are used to produce the subpixel-optimizedrepresentations of multicolor images and of the shapes of textcharacters.

[0148] The image algorithm used to produce subpixel-optimizedrepresentations of a multicolored image and the text algorithm used toproduce subpixel-optimized representations of text characters bothdetermine the luminosity of each differently colored subpixel of a givenpixel based on the luminosity, in a corresponding different window of asource representation, of the image or character shape to berepresented. The image algorithm determines a given subpixel'sluminosity based more on luminosity outside of the portion of the sourcerepresentation that corresponds in size to the given subpixel than doesthe text algorithm. The image algorithm determines a given subpixel'sluminosity based more exclusively on the amount of the luminosity of thegiven subpixels color found in the given subpixel's corresponding windowin the source representation than does the text algorithm, whosedetermination of a given subpixel's luminosity value is less influencedby the given subpixel's color.

[0149] In the above method, when dealing with the text algorithm theluminosity corresponds to, and is meant to include, coverage. Fonts witha source image that is at a higher resolution than an anti-aliasedbitmap representation could be handled, for example. Some prior artsubpixel optimization algorithms tend to be more appropriate for colorimages than for text. Thus, a higher level of clarity can be achieved byusing different sub pixel optimization techniques on color images and ontext.

[0150] This claim is not limited to requiring that text or images bescaled down. Scaling is not a necessary part of this aspect of theinvention since subpixel optimization can yield a higher perceivedresolution when used with high resolution or vector images and withoutline fonts even without scaling.

[0151] In some embodiments of this second aspect of the invention amethod is provided wherein the algorithm used to producesubpixel-optimized representations of a multicolored image determinesthe luminosity of each differently colored subpixel of a given pixelbased on the amount of the luminosity of that subpixel's color found ina respective different portion of a higher resolution representation ofthe image that is larger than the area corresponding to the size of thesubpixel in that higher resolution representation. The algorithm used toproduce subpixel-optimized representations of a character shapedetermines the luminosity of each differently colored subpixel of agiven pixel based on the extent to which the portion of a higherresolution representation of the character's shape that corresponds tosubpixel is covered by the character's shape.

[0152] In some embodiments the algorithm used to producesubpixel-optimized representations of characters shapes includesproducing a scaled sub-pixel optimized image of a bitmap image byassociating a luminosity value with each subpixel of the scaled image asa function of the percent the area of the subpixel's area in the imagethat is covered by the shape, and a color balancing function designed todistribute a portion of a subpixel's luminosity values which otherwisewould cause color imbalance to nearby subpixels of different colors. Insome such embodiments the percent of a subpixel's luminosity value thatis distributed to achieve color balance is a function of the percent ofthe subpixel's luminosity value which causes color imbalance.

[0153] In some embodiments of the second aspect of the invention digitalcontent is downloaded over a computer network in the form ofsubpixel-optimized image bitmaps created by the image algorithm and textstrings. A computer receiving this download displays the downloadeddigital content by displaying the downloaded image bitmaps. The displayof the downloaded text strings uses subpixel-optimized font bitmapscreated by the text algorithm to represent the characters in thedownloaded text strings. In some embodiments the download of the digitalcontent represents repeated occurrences of the same subpixel-optimizedimage bitmap by a symbolic reference, rather than by a repeatedtransmission of the bitmap, to reduce the amount of information requiredfor the download.

[0154] In one embodiment of the invention, for example, the layout of ascreen is downloaded to a browser in the following way. The proxyprocess doing the layout establishes a two-way communicationpipe-through a socket connection with the browser. A text string is sentas a pair of X and Y screen coordinates and a string of characters.Fonts are specified only when they change. An image is downloaded as apair of X and Y screen coordinates, the bitmap of the image, and asignature, or ID. If the proxy knows the client should have an imagestored in its cache, it may just download the images as its screencoordinates and its ID. This allows, for example, a bitmap which is tobe used repeatedly in a web page to be downloaded only once.

[0155] In some embodiments a method is provided wherein the digitalcontent is laid out before it is downloaded to the receiving computer.The text strings downloaded contain text which is to be displayed on oneline, and the downloaded content specifies the location at whichsubpixel-optimized image bitmaps and text strings are to be displayed onthe screen, so that the receiving computer does not have to determinethe location of the images and text strings

[0156] In some such embodiments, the proxy process, whether it is on aweb site or on an intermediary proxy server, might not know the cachingstatus of the browser. The proxy process might download symbolicrepresentations of images (such as URLs). The browser would ask for theactual content only if it did not already have the image contentscached. Further, in some such embodiments if the proxy process knowsthat a requested image has not been previously sent to the client orthat it is not resident in the client's cache, the proxy process woulddownload the entire image and not just refer to it symbolically.

[0157] In some embodiments the receiving computer requests, over thenetwork, font bitmaps to represent character-font shapes in downloadedstrings for which it does not already have corresponding bitmaps. Insome embodiments the receiving computer generates suchsubpixel-optimized font bitmaps from outline fonts to representcharacter-font shapes in the downloaded strings. In some embodiments thefont bitmaps are downloaded from the same computer that downloaded theimage bitmaps.

[0158] In some embodiments of the second aspect of the invention amethod is provided wherein the size of the displayed subpixel-optimizedrepresentations of images and text is scaled as a function of a givendisplay scale. The variation of the display scale can be in differentdisplays of same content by the same user, in displays of differentcontent by the same user, or in displays of the same or differentcontent by different viewers.

[0159] In some embodiments a method is provided wherein the digitalcontent is read from memory or dynamically generated in response to auser request, and the subpixel-optimized representations of the imagesare calculated after being read from memory or dynamically generated inresponse to the user request. This calculation includes causing thesubpixel-optimized images to be scaled-down to the display scale. Thesize of the scaled-down subpixel-optimized representation of textcharacters which is displayed is determined as a function of the sizeidentified for such fonts in the digital content, after that digitalcontent has been read memory or dynamically created in response to theuser request.

[0160] In some such embodiments the browser computer communicates a userrequest for a given portion of digital content over a computer networkto a server computer system. The server computer system reads therequested digital content from memory or dynamically generates it andthe calculation of the scaled-down and subpixel-optimized imagerepresentations is performed by the server computer system. Thesescaled-down subpixel-optimized image representations and the digitalcontent's text are downloaded over the network to the browser computer,which then displays the scaled down images and text. If the image isstored on a peer-to-peer system, such peer-to-peer system is considereda server for purposes of this claim.

[0161] In some such embodiments a browser computer communicates a userrequest for a given portion of digital content over a computer networkto a proxy server. The proxy server communicates the user request overthe network to a remote computer system. The server computer systemreceiving the request reads the requested digital content from memory ordynamically generates it and sends the image to the proxy server overthe computer network. The calculation of the scaled-down andsubpixel-optimized image representations is performed by the proxyserver and, then, the scaled-down subpixel-optimized imagerepresentations and the digital content's text are downloaded over thenetwork to the browser computer, which then displays the scaled downimages and text.

[0162] In some such embodiments the calculation of the scaled-down andsubpixel-optimized image representations is performed by the browser,which then displays the scaled down image.

[0163] In some such embodiments a method is provided that furtherincludes enabling a user to select a desired display scale from aplurality of possible reduced-size scales each having a lower resolutionthan the resolution at which the image was read from memory ordynamically generated. The scale factor used in the calculation of thescaled-down and subpixel-optimized representations of images and in thescaling down of character font sizes is then determined by the userselected display scale. This selection could be by allowing the user toselect from a set or a continuum of reduced-size scales or by allowingthe user to select to zoom to a certain sized line or area.

[0164] In some embodiments the digital content can specify differentsizes for different portions of text. A first portion of text having asmaller specified font size is scaled down by less in the display than asecond portion of text having a larger specified font size to preventthe display of characters of the first portion of text from fallingbelow a given size.

[0165] In some embodiments the digital content can specify a first fontfamily for a given portion of its text and the given portion of text isdisplayed with a second, different font family selected to be easier toread at small font resolutions.

[0166] In some embodiments a method is provided wherein the subpixelresolution of the screen is higher in a first direction than in asecond, perpendicular direction and

[0167] the display of characters of at least a portion of text isautomatically scaled down, as a function of the display scale, more inthe first direction relative to the second direction than is the displayof images. In some such embodiments the first direction is thehorizontal direction. Many fonts benefit more from increases in thehorizontal resolution than vertical resolution because of their shape.

[0168] In some embodiments the subpixel-optimized representations oftext characters for display are derived from bitmaps representing aseparate opacity value for each subpixel in a pixel. Displayed subpixeloptimized images are true color bitmaps with separate luminance valuesfor each subpixel of a pixel.

[0169] In some embodiments of the second aspect of the invention thedigital content is represented by tagged text written in a mark-uplanguage that includes image tags that identify data objects. The textdisplayed on the screen includes strings of characters from the taggedtext, and the images displayed on the screen are images represented bydata objects identified by the image tags.

[0170] In some embodiments the digital content is a web page and thesubpixel-optimized representations of images are scaled down from theimages in the web page. The subpixel-optimized representation of textcharacters show the displayed characters at font sizes that arescaled-down from the font sizes indicated for those characters in theweb page. The scaled-down and subpixel-optimized representation ofimages and such text allow a user to see the web page on a subpixeladdressed screen having a given whole-pixel resolution as if viewing theweb page on a screen with a higher resolution.

[0171] In some embodiments of the second aspect of the invention amethod is provided wherein the digital content is screen outputgenerated by a software application. In such a method thesubpixel-optimized representations of images are scaled down from theimages in the screen output and the subpixel-optimized representation oftext characters show the characters at font sizes which are scaled-downfrom the font sizes indicated for those characters in the screen output.Such scaled-down and subpixel-optimized images and text allow a user tosee the screen output on a subpixel addressed screen having a givenwhole-pixel resolution as if viewing the screen output on a screen witha higher resolution.

[0172] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0173] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0174] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0175] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0176] Summary of the Invention Re Innovation Group D

[0177] According to a first aspect of the present invention a method ofdisplaying digital content on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels isprovided. The digital content may include text and/or images that arerepresented by a mark-up language that includes tags which identifyimages contained in the content. The method comprises accessing thedigital content, including the text, and displaying on the screen thecharacters of the text in which,(a) the pixel patterns representing eachindividual text character represent an outline shape of the character,and (b) the luminosity of each differently colored sub-pixel of a givenpixel used in the display of a portion of a given character's shape hasbeen derived as a function of the extent to which the outline of thegiven character's shape covers that individual sub-pixel.

[0178] In some embodiments of this first aspect of the invention theaccessed digital content is a web page.

[0179] In some such embodiments the web page is accessed by downloadingit over the Internet. In some embodiments it is character-font shapeinformation, necessary to display the pixel patterns representing eachof a plurality of the text characters, that is downloaded over theInternet. In some such embodiments the character-font shape informationmay be downloaded from a remote server, or a peer-to-peer computer, thatis different from the computer system from which the digital content wasdownloaded.

[0180] In some embodiments of the first aspect of the invention a methodcomprising the downloading over the internet of character-font shapeinformation necessary to display the pixel patterns representing each ofa plurality of the text characters is provided. In some embodiments thedownloaded character-font shape information is in the form of pixelpatterns, and the display of the characters includes displaying thedownloaded pixel patterns. In some such embodiments the size of thefont, as represented by the downloaded character-font shape information,varies as a function of the size to which the page is scaled.

[0181] In some embodiments a method is provided wherein the downloadedcharacter-font shape information is in the form of character shapeoutline definitions and hinting information on how to map the outlineshapes onto a pixel array of a given size. Display of the charactersincludes displaying pixel patterns generated from the character shapeand hinting information.

[0182] In some embodiments the download of character-font shapeinformation includes the download of such information for a sub-set of agiven font's characters which sub-set is selected as a function of thetext characters of a given font which have been downloaded for thedisplay.

[0183] In some embodiments a method is provided wherein the mark-uplanguage includes tags indicating information about the font whichshould be used to display a given portion of text. The method furthercomprises displaying characters from the given portion of text using adifferent font family than that suggested for that portion of text bythe tags. The downloaded character-font shape information includesinformation necessary for displaying the given portion of text withpixel patterns corresponding to the different font. This display of textby use of a different font family than that identified by the tags isparticularly useful where the downloaded fonts are going to be shown ona small resolution or small size screen or where they are going to besub-pixel optimized. For example, the inventors have developed a set ofsub-pixel optimized fonts that are optimized to provide relatively goodreadability at a very low pixel resolution. These make a web paged laidout at a 640×480 resolution quite readable on a 320×240 display. Thesefonts are commonly substituted for normal web page fonts, particularlywhen the fonts are not large to begin with.

[0184] In some such embodiments the display of characters from thatgiven portion of text, by use of a different font family than thatsuggested for that portion of text by the tags, uses fonts with adifferent height to width ratio that that of the fonts suggested by themarkup language tags. This is done to let the scaled fonts takeadvantage of the difference in vertical and horizontal resolution of thedisplay screen, caused by the subpixel resolution, to more compactlyrepresent text with a given level of readability. In some of thoseembodiments a font family, different from that specified for the text bythe markup language tags, is used for displaying the text in a subpixeloptimized font that has been hinted and/or designed for maximumreadability at the given sub-pixel resolution at which it is to beshown. For example, characters which are to be shown at a small pixelsize on a 320 by 240 display having a subpixel resolution of 960 by 240should have characters optimized for compact display at a substantiallyhigher horizontal than vertical resolution.

[0185] In some embodiments the character-font shape information isdownloaded from a different computer than that from which the digitalcontent including the text is downloaded. In some such embodiments amethod for automatically downloading character-font shapes is provided.According to this method, the text is to be displayed on a browsercomputer and the browser computer receives the downloaded text from afirst computer. Subsequently, the browser computer requests and receivesthe downloaded character-font shape information for a set ofcharacter-font shapes determined as a function of the character-fontshapes specified by the downloaded digital content, from a secondcomputer. In such a method the downloaded character-font shapeinformation may be requested using the Http protocol.

[0186] In some embodiments of the first aspect of the invention the fontpixel pattern representing the shape of each individual text characteris produced by associating a luminosity value with each subpixel of thefont pixel pattern. This luminosity value is determined as a functionof, the percent of the subpixel's area in the image that is covered bythe character shape, and a color balancing function designed todistribute a portion of a subpixel's luminosity value which otherwisewould cause color imbalance to nearby subpixels of different colors. Thepercent of a subpixel's luminosity value that is so distributed is afunction of the percent of the subpixel's luminosity value which causescolor imbalance.

[0187] In some embodiments of the first aspect of the invention a methodwhereby fonts to be displayed are dynamically scaled as a function of ascale factor is provided. According to this method the display of texton the screen is scaled down by a display scale factor. The digitalcontent is received in a form in which the text has not been scaled bythe scale factor, and after the digital content is received the size ofthe scaled-down subpixel-optimized representation of character fonts isdetermined as a function of the scale factor.

[0188] In some embodiments the browser receives the requested digitalcontent and the scaled-down subpixel-optimized representation ofcharacter fonts from a server computer. According to this method abrowser computer communicates a user request for a given portion ofdigital content over a computer network to a server computer system. Theserver computer system reads the requested digital content from memoryor dynamically generates the requested digital content. The size of thescaled-down subpixel-optimized representation of the text's characterfonts is determined by the server computer system and the requesteddigital content and the size of such scaled-down subpixel-optimizedcharacter font representations are downloaded by the server, over thenetwork, to the browser computer, which then displays the digitalcontent's text using such scale-down representations. If the system onwhich the images are stored is a peer-to-peer system it is considered aserver for purposes of this claim.

[0189] In some embodiments the browser receives the requested digitalcontent and the scaled-down subpixel-optimized representation ofcharacter fonts from a proxy server computer. In this method a browsercomputer communicates a user request for a given portion of digitalcontent over a computer network to a proxy server. The proxy servercommunicates the user request over the network to a remote servercomputer system. The server computer system receiving the request readsthe requested digital content from a storage device or dynamicallygenerates the requested digital content. The server computer systemsends the requested digital content to the proxy server over thecomputer network. The size of the scaled-down subpixel-optimizedrepresentation of the text's character fonts is determined by the proxyserver, and the requested digital content and the size of suchscaled-down subpixel-optimized character font representations aredownloaded by the proxy server, over the network, to the browsercomputer, which then displays the digital content's text using suchscaled-down representations. In some embodiments the size of thescaled-down subpixel-optimized representation of the text's characterfonts is determined by the browser computer, which then displays thescaled down image.

[0190] In some embodiments a method further enabling a user to select adesired display scale factor from a plurality of possible reduced-sizescales each having a lower resolution than that in which the digitalcontent is first received is provided. The size of the scaled-downsubpixel-optimized representation of character fonts is determined as afunction of the user selected scale factor. In some embodiments thescaled down subpixel-optimized representations of character fonts are assmall as 10 whole pixels per EM. In some such embodiments the scaleddown subpixel-optimized representations of character fonts are as smallas 8 whole pixels per EM is provided. In some embodiments the fontfamily used for the display of the text is a font family optimized forreadability when shown in a subpixel optimized manner at a size of lessthan 10 pixels per EM. In some such embodiments the font family has fontshapes designed for display with higher sub-pixel resolution in thewidth direction than in the height direction relative to the characters.

[0191] In some such embodiments the font optimization includes hintingwhich adjusts character shape boundaries at a resolution at least ashigh as the subpixel resolution. In some embodiments the font family hasfont shapes which have a higher height to width ratio than most normalfonts. In some cases the majority of character shapes in the font familyare at least twice as high as they are wide.

[0192] In some embodiments the digital content includes differentportions of text intended to be shown at different sizes. Thedetermination of the size of the scaled-down subpixel-optimizedcharacter representations includes scaling down the size of text whichis intended to be shown at a smaller size than text which intended to beshown at larger size. This is to prevent the text intended to be shownat a smaller size from being displayed below a given size.

[0193] In some embodiments the digital content includes text which isintended to be shown with a non-grayscale foreground color. In thoseinstances the text is displayed in a subpixel-optimized manner with aforeground color which is closer to grayscale than intended. This methodis used because displaying sub-pixel optimized fonts at a very smallsize using colored text tends to interfere with readability because itvaries the luminosity between the sub-pixels of a given pixel to reflectsuch color and this variation in sub-pixel intensity to reflect colorinterferes with the variation in sub-pixel intensity used to conveyspatial resolution of a font. In some such embodiments the text that isintended to be displayed with a non-grayscale color is displayed with agrayscale color. In some such embodiments the text which is intended tobe displayed with a non-grayscale color is displayed with anon-grayscale color that is closer to grayscale than the intended color.

[0194] In some embodiments of the first aspect of the invention a methodis provided wherein the digital content can define foreground andbackground colors for a given portion of text. The given portion of textis displayed with a different background and/or foreground color than isdefined by the digital content to increase the ability of individualsub-pixels to represent the extent to which they are covered by theoutline of the given character shape they are used to represent.

[0195] According to a second aspect of the present invention a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method comprises receiving the digitalcontent including the text, and displaying on the screen characters ofthe text in which the pixel patterns representing each individual textcharacter represent an outlined defined shape of the character. Theluminosity of each differently colored sub-pixel of a given pixel usedin the display of a portion of a given character's shape is derived as afunction of the extent to which the outline of the given character'sshape covers that individual subpixel. The digital content includes textwhich is intended to be shown with a non-grayscale foreground color, and

[0196] the text is displayed in a subpixel-optimized manner with aforeground color which is closer to grayscale than intended.

[0197] In some embodiments of this second aspect of the invention amethod is provided wherein the text that is intended to be displayedwith a non-grayscale color is displayed with a grayscale color. In someembodiments of a method is provided wherein the text that is intended tobe displayed with a non-grayscale color is displayed with anon-grayscale color which is closer to grayscale than the intendedcolor.

[0198] According to a third aspect of the present invention a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method is comprised of receiving thedigital content including the text and displaying on the screencharacters of the text in which the pixel patterns representing eachindividual text character represent an outlined defined shape of thecharacter. The luminosity of each differently colored sub-pixel of agiven pixel used in the display of a portion of a given character'sshape has been derived as a function of the extent to which the outlineof the given character's shape covers that individual sub-pixel. Thefont pixel pattern representing the shape of each individual textcharacter is produced by associating a luminosity value with eachsubpixel of the font pixel pattern. The luminosity values are determinedas a function of the percent of the subpixel's area in the image that iscovered by the character shape, and a color balancing function. Thecolor balancing function is designed to distribute a portion of asubpixel's luminosity values which otherwise would cause color imbalanceto nearby subpixels of different colors. The percent of a subpixel'sluminosity value that is so distributed is a function of the percent ofthe subpixel's luminosity value which causes color imbalance.

[0199] In some embodiments of this third aspect of the present inventionthe font pixel pattern representing the shape of each individual textcharacter is produced by the following steps. A coverage value for eachsub-pixel with a given pixel in image area is determined, whichsub-pixel coverage value corresponds to the percentage of the subpixelwhich is covered by the shape. A pixel coverage value for the givenpixel, which is a function of the coverage values calculated for one ormore of the subpixels with the given pixel is calculated. A valuecorresponding to the given pixel's coverage value is added to aluminosity value calculated for each sub-pixel of the given pixel. Foreach sub-pixel in the given pixel the method is comprised of (a)determining a differential coverage value for each sub-pixelcorresponding to the difference between the sub-pixel's coverage valueand the given pixel's coverage value, and (b) adding to the luminosityvalue calculated for each given sub-pixel and one or more nearbysub-pixels a value corresponding to a portion of the given sub-pixel'sdifferential coverage value, where at least some of the nearbysub-pixels are located outside of the given sub-pixel's pixel.

[0200] According to a fourth aspect of the present invention—a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method comprises the following. Thedigital content including the text is received and the characters of thetext are displayed on the screen. For the characters of the text, thepixel patterns representing each individual text character represent anoutlined defined shape of the character. The luminosity of eachdifferently colored sub-pixel of a given pixel used in the display of aportion of a given character's shape has been derived as a function ofthe extent to which the outline of the given character's shape coversthat individual subpixel. The font family used for the display of thetext is a font family optimized for readability when shown in a subpixeloptimized manner at a size of less than 10 pixels per EM.

[0201] In some embodiments of this fourth aspect of the presentinvention the font family has font shapes designed for display withhigher sub-pixel resolution in the width direction than in the heightdirection relative to the characters. In some embodiments the fontoptimization includes hinting which adjusts character shape boundariesat a resolution at least as high as the subpixel resolution. In someembodiments the font family has font shapes which have a higher heightto width ratio than most normal fonts. In some such embodiments themajority of character shapes in the font family are at least twice ashigh as they are wide.

[0202] According to a fifth aspect of the present invention a method ofdisplaying, on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels, digital contentincluding text is provided. The method is comprised of the following.The digital content including the text is received and displayed on thescreen. For the characters of the text the pixel patterns representingeach individual text character represent an outlined defined shape ofthe character. The luminosity of each differently colored subpixel of agiven pixel used in the display of a portion of a given character'sshape has been derived as a function of the extent to which the outlineof the given character's shape covers that individual sub-pixel. Thedigital content includes different portions of text intended to be shownat different sizes, and the determination of the size of scaled-downsubpixel-optimized character representations includes scaling down thesize of text which is intended to be shown at a smaller size than textwhich intended to be shown at larger size, so as to prevent the textintended to be shown at a smaller size from being displayed below agiven size.

[0203] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0204] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0205] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0206] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0207] Summary of the Invention Re Innovation Group E

[0208] According to a first aspect of the present invention digitalcontent represented by a mark-up language is laid out, using one pixelresolution and using fonts that have a different pixel resolution, todisplay the digital content laid-out at a first resolution. This methodis not limited to subpixel optimization techniques.

[0209] In some embodiments of this first aspect of the invention thedigital content is an image. In some embodiments the invention thedigital content is a web page.

[0210] In some embodiments of the first aspect of the invention thelayout is done using font metrics that do not correspond to the actualsize at which the fonts will be shown on the screen.

[0211] In some embodiments of the first aspect of the invention the usercan vary the virtual resolution at which the digital content is laidout. For example, the user can tell the layout engine that it is tolayout the digital content at a resolution of 640×480 or 800×600 or1024×768, etc. In some embodiments of the first aspect of the inventionthe user can vary the actual resolution at which a portion of thevirtual layout is displayed. For example, the user can expand thevirtual resolution as stated above, or change the portion of the actualdisplay screen that is used.

[0212] According to a second aspect of the present invention a font in ascreen representation is laid-out at a given resolution using a givenfont metric. The screen is drawn at a different resolution using fontbitmaps which have a resolution appropriate for the different resolutionand different font metrics than that at which the fonts were laid out.

[0213] In some embodiments of this second aspect of the invention thefont metrics used for the layout are those for fonts designed for thedifferent resolution. This aspect of the invention relates to using fontmetrics when performing a layout at a virtual resolution that are basedon the size and shape of the individual scaled-down characters that willactually be displayed on the browser screen. The program performing alayout requests font metrics giving the size of each individualcharacter in a line of text being laid out, so as to determine where theline breaks should occur in the text. This aspect of the inventionperforms such text layout using metrics for individual characterscorresponding to the font metrics of the individual scaled-down bitmapswhich will actually be displayed for such characters on the actualdisplay screen, multiplied by the ratio of the virtual resolution atwhich the layout is being performed and the actual resolution of thescreen or window on which the web page will be displayed. When fonts arebeing laid out at a larger virtual resolution than the resolution atwhich they will be displayed it is desirable to use font metrics basedon the actual font metrics of the scaled-down bitmaps at which they willbe displayed. One reason for this is that, the font metrics forindividual characters of a given font do not scale uniformly withchanges in font size. This is because of the distortions that are madeto a character's shape as that shape is mapped into different sizedarrays of pixels so that features of the character's shape might beoptimally aligned with rows and columns of such different sized pixelarrays. These distortions tend to become even more exaggerated atextremely small font sizes of the type that might typically be used onrelatively low resolution displays.

[0214] In some embodiments of the second aspect of the invention aremote process is used to do the layout. This claim relates to using aproxy process, either on a web site being browsed, a remote computergenerating display output from a program it is running, or on a proxyserver which is intermediating between such a web site or remotecomputer, to do the layout at the virtual resolution and to do thescaling and subpixel optimization associated with producing scaled-downsub pixel optimized images and/or text which is to be displayed on arelatively low resolution screen. This has the advantage of allowing asmall computing device such as a handheld computer, acellphone/computer, or a wristwatch/computer, to display sophisticatedweb content or program displays without requiring the memory andprocessing power that would normally be required to do so. In someembodiments of the second aspect of the invention the method is used forweb browsing.

[0215] According to a third aspect of the present invention a method ofdisplaying digital content is provided. In this method a virtual layoutof the position of the digital content's visible text and images in avirtual space having a virtual horizontal and vertical pixel resolutionis performed. When the virtual layout is performed each such image istreated as having a virtual layout size in the virtual layout, and eachcharacter in the visible text is treated as having a virtual horizontaland vertical pixel size. The visible text is flowed across lineboundaries by breaking portions of the text which cross a line boundaryinto separate single line character strings, each of which fits on aline. Information describing the images, single line character strings,and their locations in the layout are downloaded to a browser system.The browser system displays the text and image elements of the digitalcontent at an actual pixel resolution that is different than the virtualresolution by a horizontal scale factor and a vertical scale factor.Both the images and single line character strings are displayed atdisplay screen locations corresponding to the locations at which theyhave been laid out in the virtual space, adjusted in both the horizontaland vertical direction by the horizontal and vertical scaling factors,respectively. Each of the images in the display is represented by animage that has been scaled down from the image's virtual layout size bythe horizontal and vertical scaling factor. Individual characters in thesingle line text strings are represented by a pixel pattern that has asize that differs from the character's virtual horizontal and verticalpixel size by the horizontal and vertical scale factors.

[0216] In some embodiments of this third aspect of the invention text isdisplayed with subpixel optimization bitmaps and the images are subpixeloptimizations.

[0217] In some embodiments of the third aspect of the invention thedigital content is a web page. In some embodiments of the third aspectof the invention the digital content is a virtual screen image createdby an application.

[0218] In some embodiments of the third aspect of the invention a methodis provided wherein the digital content is received containing imagebitmaps having a given pixel resolution and the virtual layout size ofan image is the pixel resolution at which those images were received.

[0219] In some embodiments of the third aspect of the invention fontsare substituted with fonts having different metrics before virtuallayout, and the layout is performed using the substituted font'smetrics.

[0220] In some embodiments of the third aspect of the invention a methodis provided wherein the display of both images and single line characterstrings is performed on a browser computer. The virtual layout isperformed on a computer remote from the browser computer and the remotecomputer downloads to the browser computer the images and the displayscreen locations for the display of images and single line characterstrings. In some embodiments the remote computer that performs thevirtual layout is a proxy server that is remote from both the browsercomputer and computers on which a web page is located.

[0221] In some embodiments of the third aspect of the invention the usercan vary the virtual resolution at which digital content is laid out. Insome embodiments of the third aspect of the invention the user can varythe actual resolution at which a portion of virtual layout which isdisplayed. In some embodiments of the third aspect of the invention theuser can vary the virtual resolution at which the digital content islaid out. In some embodiments of the third aspect of the invention theuser can vary the actual resolution at which a portion of the virtuallayout is displayed.

[0222] According to a fourth aspect of the present invention

[0223] a method of displaying a web page is provided. In this method thepixel size of one or more images of the web page is scaled down. Themethod scales down the font metrics associated with the web page'svisible text and performs a layout of the position of the web page'svisible text and images in a display space having a given horizontal andvertical pixel resolution. It treats each such image as having a scaleddown size in the layout, treats each character as having a scaled downpixel size in the layout, and flows the visible text across lineboundaries by breaking portions of text which cross a line boundary intoseparate single line character strings, each of which fits on a line.Both the images and single line character strings are displayed atlocations corresponding to the locations at which they have been laidout in the display space. Each of the images in the display isrepresented by a scaled image that has the scaled down pixel size usedin the layout, and individual characters in the single line text stringsare represented by a pixel pattern that has the character's scaled downpixel size used in the layout.

[0224] In some embodiments of this fourth aspect of the invention thedisplay of both the images and single line character strings isperformed on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels. The scaling downof the pixel size images includes determining the luminosity of eachdifferently colored sub-pixel of a given pixel in the scaled image basedon the amount of the luminosity of that sub-pixel's color found in arespective different portion of a higher resolution representation ofthe image.

[0225] In some embodiments of the fourth aspect of the invention thedisplay of both the images and single line character strings isperformed on a sub-pixel addressed screen having pixels comprised ofseparately addressable differently colored sub-pixels. The pixelpatterns representing each individual text character represent anoutlined defined shape of the character, and the luminosity values ofeach differently colored sub-pixel of a given pixel in the pixel patternused to represent a given text character has been determined based onthe extent to which the portion of the representation of the outline ofthe character's shape that corresponds to sub-pixel is covered by thecharacter's outline defined shape.

[0226] In some embodiments of the fourth aspect of the invention fontsin digital content are substituted with fonts that have differentmetrics. In some embodiments of the fourth aspect of the invention fontsin digital content are substituted with fonts optimized for display atnon-square resolution. In some embodiments of the fourth aspect of theinvention fonts in digital content are substituted with fonts optimizedfor display at 10 pixels per em or below. In some embodiments the fontsare optimized for 10 pixels per em or below. In some embodiments of thefourth aspect of the invention fonts in digital content are substitutedwith subpixel-optimized fonts. In some embodiments of the fourth aspectof the invention the relative font size of small fonts is changed tomake them more readable at a small size.

[0227] In some embodiments of the fourth aspect of the invention thescaling down of fonts increases the size of smaller fonts relative tolarger fonts to prevent smaller fonts from being displayed below a givensize.

[0228] In some embodiments of the fourth aspect of the invention thedigital content is a web page. In some embodiments of the fourth aspectof the invention the digital content is a virtual screen image createdby an application.

[0229] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0230] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0231] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0232] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0233] Summary of the Invention Re Innovation Group F

[0234] According to a first aspect of the present invention a method isprovided wherein a web page, including the layout of the web page with agiven resolution, is displayed. When the user zooms so as to change theratio of the display resolution to the layout resolution, the page isre-laid out to reflect the change in the font metrics of the fonts usedto display text in the web page at the different display resolutions.The text is reflowed to accommodate differently hinted text at differentscale views of the web page at a given nominal layout resolution.

[0235] In some embodiments of this first aspect of the invention thesystem uses different font sizes for different scaled page views. Insome embodiments of the first aspect of the invention sub-pixeloptimized text is used in the display. In some embodiments of the firstaspect of the invention the layout is performed on a first computer, thelayout information is downloaded to a second browser computer, and isdisplayed on the browser computer.

[0236] In some embodiments the user can select to vary the zoom on thebrowser. This selection is uploaded to a first computer. The firstcomputer re-lays out the web page in response to the change in fontmetrics resulting from the change in the display resolution. In suchembodiments the remove process can download the rest of the zoomed pagewhich can be cached.

[0237] According to a second aspect of the present invention a method isprovided wherein a web page, including the layout of the web page with agiven resolution, is displayed. When the user zooms so as to change theratio of the display resolution to the layout resolution, the page isnot re-laid out to reflect the change in the font metrics of the fontsused to display the text in the web page at the different displayresolution. In some embodiments of this second aspect of the invention amethod to accommodate differently hinted text at different zoom scalesby adjusting the spacing between words in individual strings isprovided. In some embodiments of the second aspect of the invention amethod to accommodate differently hinted text at different zoom scalesby adjusting the spacing between individual characters in words inindividual strings is provided.

[0238] In some embodiments of the second aspect of the invention thelayout is performed on a first computer. The layout information isdownloaded to a second browser computer and is displayed on the browsercomputer. In some embodiments the user can select to vary the zoom onthe browser. This selection is uploaded to a first computer. In suchembodiments the first computer determines which portion of the priorlayout is in the selected zoomed view and downloads that information tothe browser, which displays it using fonts of a different size toreflect the newly selected zoom. In some embodiments the browserdetermines which portion of the previously downloaded page is in theview having the newly selected zoom value, and redisplays it using fontsof a different size to reflect the newly selected zoom.

[0239] According to a third aspect of the present invention a method ofbrowsing the web is provided. The method consists of downloading a webpage from across a computer network, producing a first display of atleast a portion of the web page at a first scale, and responding to auser's selection of a given portion of the first display by producing asecond display of a portion of the web page including the selectedportion, where the second display is at a second scale automaticallyselected to cause the size of the portion of the web page shown in thesecond display to correspond to the size of the selected portion.

[0240] In some embodiments of this third aspect of the invention amethod is provided wherein the user's selection of a given portion ofthe first display is performed by dragging a cursor across the selectedportion of the first display. In some embodiments the user's selectionof a given portion of the first display is performed by dragging arectangle around the selected portion of the first display. In someembodiments the user's selection of a given portion of the first displayis performed by dragging a horizontal line across the selected portionof the first display. The portion of the web page shown in the seconddisplay automatically places the portion of the web page correspondingto the line in the upper one third of the second display. Thisinnovation can be used to allow a user to both select the portion of thewidth of a web page or similar media which is to be zoomed into and theportion of a web page which is to be placed near the top of the screenwith one simple stroke. In some embodiments the first display can scrollduring, and in response to, the dragging so as to enable the selectedportion to include a portion of the web page which was not shown in thefirst display at the start of the drag.

[0241] In some embodiments of the third aspect of the invention a methodis provided wherein the user's selection of a given portion of the firstdisplay is performed by indicating an object shown in the first display.The method automatically defines the selected portion of the firstdisplay as being the portion of that display which corresponds to thewidth and/or height of the indicated object. In some embodiments theindication of an object is performed by clicking on the object. In someembodiments the selected object is an image, a control, a cell within aweb page table, a frame of a web page, or an automatically identifiablegrouping of text. Automatically identifiable groupings of text includesingle line text strings, bodies of text at a certain tag level in amarkup language page, etc.

[0242] In some embodiments of the third aspect of the invention a quickzoom, which is a zoom that merely blows up a bitmap pattern of the lowerresolution image being zoomed, can be performed. A quick zoom wouldoften be desirable where the device upon which the zoom image is beingdisplayed has a low bandwidth link to the source of the media beingdisplayed. In this case, images would commonly only be downloaded in theresolution of the non-zoomed view, and obtaining higher resolution imageinformation might be rather slow. So using such a quick zoom would allowthe user to at least see the representation of the image while waitingfor the download of its higher resolution equivalent.

[0243] In some embodiments of the third aspect of the invention the usercan select downloads of non-scaled images individually. In someembodiments of the third aspect of the invention images can be scaled upor down. If the scaled images are too large to fit on the screen at agiven resolution, a peephole view (i.e., a view that shows only aportion of the width at which a page has been laid out at) of a portionof the image, can be scrolled through them.

[0244] In some embodiments of the third aspect of the invention a zoomto fit the width of a text container, such as a table or a layer in HTMLor other containers in other markup languages, can be performed.

[0245] According to a fourth aspect of the present invention a method ofbrowsing the web is provided. The method comprises downloading a webpage from across a computer network and laying out the position of theweb page's visible text and/or images in a layout space havinghorizontal and vertical layout pixel resolutions. In performing thelayout each image is treated as having a layout size in the layoutspace. Each character in the visible text is treated as having ahorizontal and vertical layout pixel size in the layout space, and thevisible text is flowed across line boundaries by breaking portions oftext which cross a line boundary into separate single line characterstrings, each of which fits on a line in the layout space. A firstdisplay of at least a portion of the web page is produced at a firstscale having a pixel resolution that corresponds to the horizontal andvertical layout resolutions multiplied by the first horizontal andvertical scale factors, respectively. In this first display both theimages and single line character strings are displayed at display screenlocations corresponding to the locations at which they have been laidout in the layout space, adjusted in the horizontal and verticaldirection as a function of both the first horizontal and verticalscaling factors, respectively.

[0246] Each of the images in the first display is represented by a pixelpattern that has been scaled from the image's layout size as a functionof the first horizontal and vertical scaling factors, each of theindividual characters in each single line text strings in the firstdisplay is represented by a pixel pattern that has a size that relatesto the character's horizontal and vertical layout pixel size as afunction of the first horizontal and vertical scaling factors,respectively. The user's selection to display a portion of the web pageat a second scale is responded to by producing a second display of atleast a portion of the web page at a pixel resolution which correspondsto the horizontal and vertical layout resolutions multiplied by secondhorizontal and vertical scale factors, respectively.

[0247] Each of the images in the second display is represented by apixel pattern that has been scaled down from the image's layout size asa function of the second horizontal and vertical scaling factors. Eachof the individual characters in the single line text string isrepresented by a pixel pattern that has a size that relates to thecharacter's horizontal and vertical layout pixel size as a function ofthe second horizontal and vertical scaling factors, respectively. Theratio of the horizontal size of the pixel patterns of at least someindividual characters in the first and second displays differs from theratio of the first and second horizontal scaling factors. Thisdifference in ratio causes the relative location of individualcharacters in different single line character strings to vary betweenthe first and second displays, but the fact that the same single linecharacter strings are displayed in both the first and second displaysprevents this difference in ratio from changing which portions of textappear on a given line in the different displays.

[0248] In some embodiments of this fourth aspect of the invention thebrowser requests a web page through a proxy. The proxy requests the pagefrom a remote site. When the proxy receives the page it lays it out anddownloads its images and character string elements, and the locations atwhich those elements are to be displayed. The browser displays theelements at a first scale. When the user selects a second scale, thebrowser redisplays the elements at a second scale and the distancesbetween locations are similarly scaled without obtaining new displaylocations from the browser. In some embodiments the browser scales abitmap of an image at a first scale and uses it in a second display atsecond scale. In such embodiments the browser can request a largerversion of an image for display at second scale. In some embodiments ifthe browser already has stored on it fonts of an appropriate size forthe second scale, it displays text in the second scale with those fontswithout the need to obtain those fonts from a proxy. In some embodimentsthe proxy sends down an image at a different scale for the seconddisplay.

[0249] In some embodiments of the fourth aspect of the inventionsub-pixel optimized fonts are used in the display of at least one of thetwo scales. In some embodiments of the fourth aspect of the invention,as font sizes change, metrics of the characters of the font do notalways change in the same proportion.

[0250] In some embodiments of the fourth aspect of the invention aclient may have sufficient computational resources to add or subtractspace between bitmaps without communication with the proxy.

[0251] In some embodiments of the fourth aspect of the inventionindividual characters in text strings are represented by outline fonts.In some embodiments of the fourth aspect of the invention the individualcharacters in the first and/or second display are downloaded across anetwork from a font server.

[0252] In some embodiments of the fourth aspect of the invention a‘ZOOM-TO-FIT’ function is provided wherein

[0253] a user's selection to display a portion of the web page at asecond scale is performed by the user selecting a given portion of thefirst display. In response to the user's selection a second display of aportion of the web page including the selected portion is produced. Thesecond scale is automatically selected to cause the size of the portionof the web page shown in the second display to correspond to the size ofthe selected portion.

[0254] According to a fifth aspect of the present invention a‘QUICKZOOM’ function is provided. A quickzoom is a zoom that blows up abitmap pattern of the lower resolution image being zoomed. The browserinterface has controls for the selection of the quickzoom function thatcauses a quickzoom of all or a portion of a web page or other digitalcontent to be performed. This quickzoom is distinguished from MircoSoftWindows' magnifying glass function by the fact that the browser hascontrols for allowing this function to be built into it.

[0255] In some embodiments of this fifth aspect of the invention aquickzoom, which does a blow up of lower resolution image data for zoompurposes but which uses higher resolution font bitmaps to representzoomed text, if it has them available, is provided. In some embodimentsif the higher resolution font bitmaps are not available, the higherresolution font bitmaps can be substituted into the quickzoom view assoon as they are received. In some embodiments of the fifth aspect ofthe invention as soon as the higher resolution version of a zoomed imageis received, the browser replaces the quickzoomed version with thehigher resolution image. In some embodiments of the fifth aspect of theinvention the quickzoom function scales subpixel optimized image colorbitmaps up in size. In some embodiments of the fifth aspect of theinvention a method is provided wherein a 2× (or other scale) zoom buttonin the browser user interface, which would allow a user to perform a 2×zoom around the last location selected, is provided.

[0256] In some embodiments of the fifth aspect of the invention multipleresolutions, such as a standard 0.5× and 1×, are automaticallydownloaded so that the quickzoom function can alternate between the tworesolutions in response to a user's selection. The automatic downloadalso allows the higher resolution image to be ready for the zoomfunction shortly after the download.

[0257] In some embodiments the user could specify what type of elementsthat are not shown, but which may be of interest, he or she wantsdisplayed. In such embodiments the user selected elements are availablefor use by the zoom function. In such embodiments the user selectedelements are available for use in scrolling at the current resolution.

[0258] According to a sixth aspect of the present invention a‘ZOOMCLICK’ function is provided wherein a quickzoom on a portion of thescreen is performed. The portion is selected by the user clicking downon the mouse button but the click is not recorded until the userreleases the button. This lets user move the mouse to a desired positionin a larger scale view in which it is easier to locate desired screenobjects before making a selection. In some embodiments of this sixthaspect of the invention the user can turn the zoomclick feature on andoff.

[0259] According to a seventh aspect of the present invention a ZOOMTEXT ENTRY feature is provided. When using this feature a user clicks orotherwise selects a text entry field shown on a screen at a first size.In response a zoomed text entry field is shown at a larger size. Thisfeature can be very useful on small screen displays, such as manycurrent TV sets, that have a relatively low resolution, and withdisplays which are being dealt with from a distance, and thus have arelatively low perceptual resolution. It is useful because it allows theuser to see text being entered into a text entry field at a larger, andthus easier to read size, than text would appear in the text entry fieldif its size were not zoomed by this feature. This decreases the chancethat a user will fail to catch and correct typographical errors, andthus will tend to increase the ease and accuracy of use of such fields.

[0260] In some embodiments of this seventh aspect of the invention akeyboard and a separate text entry field pop up on the screen when auser clicks on any text entry field shown in a web page. Once the userpresses an enter button associated with the large pop-up text entryfield, these pop-up elements disappear from the screen. In someembodiments of the seventh aspect of the invention the image could zoomin on the actual text entry field the user has clicked on, in a mannersimilar to the zoom click described above. In some embodiments of theseventh aspect of the invention when the user selects a text entry fielda keyboard pops up on the screen. In some embodiments of the seventhaspect of the invention when the user selects a text entry field ahandwriting recognition field pops up on the screen. In some embodimentsof the seventh aspect of the invention when the user selects a textentry field a voice recognition entry field pops up on the screen.

[0261] According to an eighth aspect of the present invention amagnifying glass feature is provided wherein on a web browser in which aportion of a smaller scale screen view of web content is zoomed, theportion of the smaller scale screen shown in the zoomed scale movesaround as the user moves or clicks the pointing device. In someembodiments of this eighth aspect of the invention a user can togglebetween the magnified and normal small scale screen.

[0262] In some embodiments of the eighth aspect of the invention thezoom view text is shown in a higher resolution font, without textreflow. In some embodiments of the eighth aspect of the invention thescreen displays quickzoomed versions of images from the small scale viewuntil or unless the browser receives higher resolution versions of theimages. In some embodiments of the eighth aspect of the inventionvariable zoom scale is provided.

[0263] According to a ninth aspect of the present invention rapid zoomcontrols are provided wherein a browser has a user interface withbuttons that allow a user to rapidly change between different scaleviews of a web page or other digital content.

[0264] In some embodiments of this ninth aspect of the invention thebrowser user interface has a zoom button or command which, if selectedbefore or after the user selects a portion of the screen, zooms to thatportion. In some embodiments of the ninth aspect of the invention thebrowser user interface records the history of zoom sizes and has a backand forward control, similar to that used for history of web pages, toallow the user to go back and forth between different views of a givenpage. In some embodiments the view history not only records the size butalso the location of views, so that the user can navigate back and forthbetween views of a given web page or other digital content at differentlocations and/or sizes. In some embodiments of the ninth aspect of theinvention the system cache retains information that is helpful fordisplay at different sizes. This can include caching differentresolution representations of images and different size font bitmaps. Insome embodiments of the ninth aspect of the invention different fontsare used for different views. Although a browser could just blow-up thesize of the font bitmaps used in a small scale view for use in a largerscale view, the zoomed view would be more attractive and more easilyreadable if it used higher resolution bitmaps for the scaled upcharacters.

[0265] In some embodiments of the ninth aspect of the invention aquickzoom scaling of the prior view is performed if the new view is notin local memory. In some embodiments of the ninth aspect of theinvention a remote process generates the alternate zoomed views. In someembodiments of the ninth aspect of the invention the first and/or zoomedview are displayed with subpixel optimization of text and/or images.

[0266] According to a tenth aspect of the present invention the user mayselect to zoom out to see the whole page or at least what would bemultiple normal screens. This can be used for many purposes, such asenabling a user to more easily select desired portions of a page thatwould normally extend across several screens. This enables a user toquickly get a feeling for the size or layout of a page, and to enable auser to select what part of the page is to be zoomed to. In someembodiments of this tenth aspect of the invention greeking could be usedfor all text below a certain size, and shading for all text of even asmaller size.

[0267] According to an eleventh aspect of the present invention aCENTERCLICK function is provided. Centerclick allows a user of a webbrowser to zoom to a peephole view (i.e., a view that shows only aportion of the width at which a page has been laid out at) and allowsthe user to recenter the peephole view where the user clicks.

[0268] According to a twelfth aspect of the present invention a user canselect subpixel optimized views of images and text with variable zoom ona web browser. In some embodiments of this twelfth aspect of theinvention the system interface allows a user to selected among three ormore different scalings.

[0269] According to a thirteenth aspect of the present invention a useris enabled to select a virtual resolution at which he or she desires aweb page to be laid out. The system, either at the browser, or on aproxy process at the website server or on a proxy server, lays out theweb page at that selected virtual resolution. Then the system causes thecontents of the web page to be laid out on the screen of the browser atthe browser's fixed resolution, using font bitmaps which have aresolution corresponding to that of the browser's screen.

[0270] According to a fourteenth aspect of the present invention a useris enabled to select a virtual resolution at which he or she desires aweb page to be laid out. The system, either at the browser, or on aproxy process at the website server or on a proxy server, lays out theweb page at that selected virtual resolution. Then the system causes thecontents of the web page to be laid out on the screen of the browser atthe browser's resolution, using font bitmaps and images which have beenscaled down as a function of the ratio between the virtual resolutionand the resolution of the browser's screen. The bitmaps representing thedown-scaled text and/or the images are subpixel optimized to increasetheir apparent resolution on the browser's screen.

[0271] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0272] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0273] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0274] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0275] Summary of the Invention Re Innovation Group G

[0276] According to a first aspect of the present invention a process ona first computer system generates a layout of a web page to be displayedon the screen of second computer system in response to input provided bya user into the second computer system. One or more elements in the webpage display are scaled down by the process on the first computer beforebeing downloaded to and displayed by the second computer. A font familythat has been selected for readability at pixel sizes of 10 pixels perem or less is used by the first computer in the layout and by the secondcomputer for the display.

[0277] In some embodiments of this first aspect of the inventionwireless communication is used between the first computer and secondcomputer. In some embodiments of the first aspect of the invention a webpage specifies certain fonts for certain text, and the first computerperforms the layout and the second computer displays the certain textwith different fonts that have been optimized for readability at pixelsizes of 10 pixels per em or less. In some embodiments of the firstaspect of the invention a font family has been optimized for readabilityat pixel sizes of 8 pixels per em or less.

[0278] In some embodiments of the first aspect of the invention a firstcomputer makes foreground color changes to text elements which aredisplayed to increase the readability of subpixel optimized fonts.

[0279] In some embodiments of the first aspect of the invention thesecond computer system has a user interface that allows a user to changethe scale factor at which elements generated on the first computersystem are displayed on the second computer system. The scale factor isuploaded from the second computer to the first computer which uses itboth in determining how much to scale down elements in the web page, andin determining the size for the fonts to be used in the display of theweb page by the second computer.

[0280] In some embodiments of the first aspect of the invention thesubpixel optimized elements are text. In some embodiments non-linearcolor balancing is used in the subpixel optimization of text. In someembodiments of the first aspect of the invention the subpixel optimizedelements are images. In some embodiments of the first aspect of theinvention the subpixel optimized elements are text and images and adifferent algorithm is used to subpixel optimize fonts and images.

[0281] According to a second aspect of the present invention a method isprovided wherein a process on a first computer system repeatedlygenerates information to be displayed on the screen of second computersystem in response to input provided by a user into the second computersystem. The information generated by the first computer is downloaded tothe second computer, the user input is uploaded from the second computerto the first computer, and one or more elements in the display aresubpixel optimized for display the screen of the second computer. Thismethod is not limited to use in web browsing.

[0282] In some embodiments of this second aspect of the invention thesubpixel optimization is done by a first computer. In some embodimentsof the second aspect of the invention the subpixel optimization is doneby a second computer.

[0283] In some embodiments of the second aspect of the invention thedownload is performed by wireless transmission.

[0284] In some embodiments of the second aspect of the invention thesubpixel optimized elements are text. In some embodiments non-linearcolor balancing is used in the subpixel optimization of text. In someembodiments of the second aspect of the invention the subpixel optimizedelements are images. In some embodiments of the second aspect of theinvention the subpixel optimized elements are text and images and adifferent algorithm is used to subpixel optimize fonts and images.

[0285] In some embodiments of the second aspect of the invention colorchanges are made to the elements that are displayed to increase thereadability of subpixel optimized fonts.

[0286] In some embodiments of the second aspect of the invention thesecond computer system has a user interface that allows the user tochange the scale at which elements generated on the first computersystem are displayed on the second computer system. In some embodimentsscaling is performed on the first computer. In some embodiments scalingis performed on the second computer.

[0287] In some embodiments of the second aspect of the invention theprocess running on the first computer system is an application whichdoes not have programming for subpixel optimization. In some embodimentsthe subpixel optimization is performed by routines on the first computerthat respond to calls made by the application to draw a screen element.

[0288] According to a third aspect of the present invention a process ona first computer receives digital content including text. The processlays out the digital content for use in a downscaled display anddownloads the display list to a second computer. A process on the secondcomputer displays the information in the display list.

[0289] In some embodiments of this third aspect of the invention textstrings that are referred to in the display list are downloaded beforebitmap images. The second computer starts to display the text stringsbefore receipt of the images.

[0290] In some embodiments of the third aspect of the invention thedownload is performed by wireless transmission. In some embodiments thedisplay list is compressed with lossless compression before downloading.

[0291] In some embodiments of the third aspect of the invention theprocess on a first computer scales down the digital content. In someembodiments the process scales down images bitmaps. In some embodimentsthe process scales down font sizes. In some embodiments of the thirdaspect of the invention a process on the second computer scales down thedigital content. In some embodiments of the third aspect of theinvention a process on the first computer lays out digital content atone pixel resolution, the process on the second computer display thecontent at another resolution.

[0292] In some embodiments of the third aspect of the invention text isdisplayed with subpixel optimized bitmaps. In some embodiments of thethird aspect of the invention images are displayed with subpixeloptimized images. In some embodiments of the third aspect of theinvention a process on the first computer scales the text font size as afunction of a display scale factor and the second computer displays textat scaled font sizes.

[0293] In some embodiments a process on the second computer responds touser input to change a zoom factor. The zoom factor is used to vary thesize of the portion of the layout to be displayed. The process uploadsthe selected zoom factor to a process on the first computer, which thenuses it to determine the scale factor used to scale text font size. Insuch embodiments a change in the zoom factor causes text to be displayedat a different font size but the text is not re-laid out. In some suchembodiments changes in the relative spacing between the characters of astring are used to compensate for differences in the relative size ofthe various characters of a string when displayed at different fontsizes.

[0294] In some embodiments a process on the second computer responds touser input to change the layout resolution. The process uploads theselected scale factor to a process on the first computer, which thenuses it to determine the scale factor used to scale text font size.

[0295] In some embodiments of the third aspect of the invention thefirst computer downloads more display list layout information than fitson the display of the second computer at one time.

[0296] In some embodiments the user interface on the second computerallows a user to move the screen display to a new location within thepreviously downloaded layout information. In response the secondcomputer displays elements of the layout corresponding to the newlocation. In such embodiments user interface input associated withlocation on the screen of the second computer are scaled and/ortranslated and sent back to the first computer which responds to them asif they had taken place in the corresponding location in the displaylist.

[0297] According to a fourth aspect of the present invention a method isprovided wherein a process on a first computer system repeatedlygenerates information to be displayed on the screen of a second computersystem in response to input provided by a user into the second computersystem. The information generated by the first computer is downloaded tothe second computer. The user input is uploaded from the second computerto the first computer, and one or more elements displayed on the secondcomputer in response to information downloaded from the first computerare control objects. The second computer has programming that respondsto the user input associated with such control objects by appropriatelychanging the control object's appearance in the display and by storingstate information indicating the change made to the control objectsdisplay. The first computer includes programming that transmits a queryto the second computer for the state associated with a set of one ormore of the displayed control objects, and the second computer respondsto such a query by transmitting up to the first computer the stateassociated with each of the queried set of control objects. In someembodiments of this fourth aspect of the invention the communicationbetween the first and second computers is conducted by means of wirelesstransmission.

[0298] According to a fifth aspect of the present invention a process ona first computer system repeatedly generates information to be displayedon the screen of a second computer system in response to input providedby a user into the second computer system. The user interface on thesecond computer allows the user to select to scroll the position of thescreen image relative to the layout of the information to be displayed.When the display at the new layout position would include the display ofinformation downloaded for use in the display at the previous layoutposition, the second computer reuses at least a portion of suchpreviously downloaded in formation, and the first computer selects whichinformation to download to the second computer for use in the display atthe new layout position so as to not to re-download such previouslydownloaded information which is to be so reused.

[0299] In some embodiments of this fifth aspect of the inventioninformation is re-used by translating a portion of the bitmap generatedfor the display at the old layout position for use in the display at thenew layout position. In some embodiments of the fifth aspect of theinvention the download is performed by wireless transmission.

[0300] According to a sixth aspect of the present invention a browserprocess on a first computer receives a web page. The process lays outthe web page and creates a corresponding display list including a listof strings and images and their locations. The process then downloadsthe display list by wireless communication to a thin client browser.Bitmaps of images are sent down after strings and their locations. Thethin client browser starts to display strings at locations indicated inthe display list before images are all received. Images are displayed atlocations indicated in the display list when received.

[0301] In some embodiments of this sixth aspect of the invention thewireless communication is by means of a local area wireless network. Insome embodiments of the sixth aspect of the invention the wirelesscommunication is by means of a cellular wireless system.

[0302] According to a seventh aspect of the present invention a firstcomputer scales down and lays out a web page. The first computercompresses the layout information, and downloads it via wirelessconnection to a second computer. The second computer decompresses thelayout information, and displays it on its screen. The second computerreceives user inputs relative to location on its display of the web pageand sends the user inputs to the first computer. The user inputs arescaled to corresponding locations in the layout of the web page storedon the first computer. The first computer detects if the scaled userinput corresponds to clicking on a link in web page. If it doescorrespond it responds by accessing the linked web page.

[0303] In some embodiments of this seventh aspect of the invention thecompression includes lossless compression of text. In some embodimentsof the seventh aspect of the invention the compression includes losslesscompression of images.

[0304] In some embodiments of the seventh aspect of the inventiondownloaded and displayed images are subpixel optimized image bitmaps. Insome embodiments of the seventh aspect of the invention text isdisplayed by the second computer by subpixel optimized font bitmaps.

[0305] According to an eighth aspect of the present invention a methodof web browsing is provided. The method is comprised of the following. Agreeked representation of a web page is downloaded. Each of one or moreportion of text is represented as a string length starting at each ofone or more locations in a layout of the page. At least a portion of theweb page in which the one or more string lengths are represented attheir associated layout positions by greeking is displayed. Subsequentlythe string characters associated with one or more of the portions oftext are downloaded and the character string associated with one or moreof the portion of texts is displayed.

[0306] In some embodiments of this eighth aspect of the invention amethod is provided that further includes allowing a user to select oneor more of the portions of text represented by the greeking and whereinthe subsequent downloading and subsequent displaying includesdownloading and displaying the string of characters associated with oneor more of the selected portions of text. In some embodiments thesubsequent displaying includes displaying a part of the web page,including the character strings of the selected portions of text, at alarger scale than the same portion of the web page shown with thegreeked representations was shown.

[0307] In some embodiments the subsequent displaying includes displayingone or more characters strings of the selected portions of text usingcharacter shapes having a larger size than is represented by the greekedrepresentation after the text has been reflowed across line boundariesto determine new line breaks occasioned by the larger character shapesizes.

[0308] In some embodiments of the eighth aspect of the invention thegreeked representation represents a body of multi-lined text in the webpage as a series of string lengths, each representing the length of oneline of text and each having an associated layout position in the webpage. In other embodiments it could represent multiple lines of text bya position and distance between them to save bandwidth. In someembodiments the subsequent downloading of a character string includesdownloading a separate character string in association with individualsingle line string lengths. The subsequent displaying of characterstrings includes successively replacing in the display the greekingassociated with the individual single line string with the shapes of thecharacter of their associated characters string as those individualcharacters strings are downloaded.

[0309] In some embodiments the download proceeds from the top of thepage first. In such embodiments the download proceeds across side byside text blocks. In some embodiments of the eighth aspect of theinvention the order in which different portions of text have theirindividual characters downloaded and displayed varies as a function ofthe different properties that the different text portions haveassociated with them by the web page. In some embodiments font size isone of the properties used to control the order in which differentportions of the text have their characters downloaded and displayed.Other properties could include other attributes such as heading level,colored text versus black and white text, links, etc.

[0310] In some embodiments of the eighth aspect of the invention some ofthe string lengths have height values associated with them that indicatethe height of the characters in the text portion that the string lengthrepresents. The displaying of the web page in which the string lengthsare represented by greeking includes causing the height of the greekingused to represent a given string length to vary as a function of thestring length's corresponding height value.

[0311] In some embodiments of the eighth aspect of the invention imagescan be shown in abbreviated form first. In some embodiments the outlineof a picture rectangle is shown first. In some embodiments a lowresolution image or character is shown first. In some embodiments of theeighth aspect of the invention a user can specify the download order. Insome embodiments of the eighth aspect of the invention the downloadoccurs from a proxy server. In some embodiments of the eighth aspect ofthe invention a user supplies input that is used to indicate which tosee first.

[0312] According to a ninth aspect of the present invention a method ofdownloading and displaying a web page that contains different portionsof text having different properties associated with them by the web pageis provided. The method includes (a) laying out the web page beforedownloading it to a browser computer, (b) downloading representations ofindividual portions of text with an indication of the layout location ofeach such portion, (c) displaying representations of the downloadedindividual portions of text as a function of the order in which they aredownloaded, and (d) the order in which different portions of text aredownloaded and displayed is controlled as a function of the location towhich the portions have been assigned within the layout.

[0313] In some embodiments of this ninth aspect of the invention theorder in which different portions of text is downloaded and displayed iscontrolled as a function of the relative closeness of the text portionsto the top of the layout. Text portions that are closer to the top ofthe layout are downloaded before the text portions which are closer tothe bottom of the layout. In some embodiments of the ninth aspect of theinvention the downloaded representations of individual text portionsincludes, for each downloaded text portion, a string length and theindication of the layout position. Displaying a representation of thedownloaded text portions includes representing the downloaded stringlengths at their associated layout positions by greeking. In someembodiments of the ninth aspect of the invention the downloadedrepresentations of individual text portions include, for each downloadedtext portion, a string of one or more characters corresponding to thetext of the text portion and the indication of the layout position.Displaying a representation of the downloaded text portions includesrepresenting the downloaded character strings at their associated layoutpositions by the shapes of their respective characters.

[0314] In some embodiments of the ninth aspect of the inventiondownloaded information is received and displayed by a browser computer.The layout is performed, and the downloaded information is downloadedfrom one or more remote computers. The browser computer allows a user toselect a portion of the web page for preferential display while the pageis being displayed. The browser computer responds to the user'sselection of a portion of the web page for preferential display bycommunicating the selection to one of the remote computers. The remotecomputer responds to the communication of the selection of a portion ofthe web page by altering the download of the web page to support theselected preferential display.

[0315] In some embodiments a method of providing a preferentialselection to indicate a portion of a page to be downloaded first isprovided. The selection indicates that the selected portion of the webpage is to be downloaded and displayed before other portions of the webpage. The remote computer alters the download of the web page to supportthe selected preferential display by causing the selected portion of theweb page to be downloaded before other, non-selected portions, of thewebpage. In some embodiments the selection indicates that the selectedportion of the web page is to be displayed at a larger size than that atwhich the page was being displayed before the selection. The remotecomputer alters the download of the web page to support the selectedpreferential display by causing the selected portion of the web page tobe downloaded before other non-selected portions of the web-page and thebrowser displays elements of the selected portion of the web page at thelarger size.

[0316] In some embodiments the browser computer has a screen on whichthe display is made. The selection can include portions of the screenwhich correspond to portions of the web page which have not yet beendisplayed at the time of the selection. The communication to the remotecomputer indicates that the selection includes the portion of the webpage corresponding to the selected portion of the screen. In someembodiments of the ninth aspect of the invention image locations aredownloaded with text descriptions and a user can select which to havedownloaded first. In some embodiments of the ninth aspect of theinvention major divisions of the page are downloaded to let a userselect which to have downloaded first. Major divisions include tablecolumns, layers, or other spatial divisions.

[0317] In some embodiments a user can select to zoom into a downloadedimage location or text description. In some embodiments layers, tableelements, etc. are indicated by outlines and letter uses.

[0318] In some embodiments of the ninth aspect of the invention a methodof downloading and displaying a web page which contains differentportions of text having different properties associated with them by theweb page is provided. The method is comprised of (a) laying out the webpage before downloading it to a browser computer,(b) downloadingindividual portions of the web page's text, including one or morecharacters, with an indication of the layout location of each suchportion, (c) displaying the individual portions of text as a function ofthe order in which they are downloaded. The order in which differentportions of text are downloaded and displayed is controlled as afunction of the different properties which the different text portionshave associated with them by the web page. In some embodiments font sizeis one of the properties used to control the order in which differentportions of the text have their characters downloaded and displayed. Insome embodiments it is not necessary to download images because theposition of text is known. In such embodiments small ones could bedownloaded first and large ones last. In some embodiments banneradvertisements could be downloaded last.

[0319] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0320] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0321] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0322] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0323] Summary of the Invention Re Innovation Group H

[0324] According to a first aspect of the invention an application callsthe operating system to display an image. The operating system callcauses images received from the application to be scaled-down by a scalefactor, subpixel optimized, and displayed.

[0325] In some embodiments of this first aspect of the invention anoperating system function scales down and subpixel optimizes images. Insome embodiments of the first aspect of the invention hooks interceptthe operating system calls. The function evoked by the hook in responseto the call scales down and subpixel optimizes an image instead of thecorresponding operating system function.

[0326] In some embodiments of the first aspect of the invention imagesthat are scaled down and subpixel optimized include bitmaps from theapplication's graphical user interface. In some embodiments of the firstaspect of the invention the application is a browser. In someembodiments of the first aspect of the invention the application is nota browser.

[0327] According to a second aspect of the invention a bitmap drawroutine is called to draw a bitmap and a separate string draw routine iscalled to draw a string with a particular font. The bitmap with whichthe bitmap draw routine is called is a subpixel optimized bitmap. Thefont with which the string draw routine is called is a subpixeloptimized font. In some embodiments of this second aspect of theinvention these calls are made by an application program other than theoperating system. In some embodiments these calls are made by a browserprogram. In some embodiments of the second aspect of the invention thesecalls are made by a program running in a thin client.

[0328] In some embodiments the subpixel optimized image is a scaledsubpixel optimized image created by a second computer, different fromthat on which the thin client is located, and that scaled, subpixeloptimized image has been downloaded from the second computer to thebrowser computer. In some embodiments of the second aspect of theinvention the images include bitmaps from the application's graphicaluser interface. In some embodiments of the second aspect of theinvention the application is a browser. In some embodiments of thesecond aspect of the invention the application is not a browser.

[0329] According to a third aspect of the invention an application callsthe operating system to get font measurements for a certain string in acertain font. Respective operating system calls cause font metrics for asubstitute font to be given to the application, use font measurements tolayout text, and substitute the font used to display the laid out text.

[0330] In some embodiments of this third aspect of the invention anapplication calls the operating system to display an image. Operatingsystem calls cause images received from the application to bescaled-down by a scale factor and displayed. In some embodiments theoperating system call is intercepted to allow a scaled screen generatorfunction to work. In some embodiments the process of scaling down animage also subpixel optimizes it.

[0331] In some embodiments the application and the operating system areon a first computer. The application lays out one or more images andlays out the text as one or more single line strings and assigns arelative location within the layout to each string and each image. Thestrings, the images, and their locations are downloaded to a secondcomputer. The second computer displays the scaled down images anddisplays text using substituted fonts at positions on the secondcomputer's screen that correspond to the respective downloadedlocations. In some such embodiments the layout is performed by theapplication at a first resolution and all or a portion of the laid outelements are displayed on the second computer.

[0332] In some embodiments of the third aspect of the invention thesubstituted fonts are subpixel optimized fonts. In some embodiments ofthe third aspect of the invention an operating system function performsthe font substitution. In some embodiments of the third aspect of theinvention a hook intercepts such an operating system call and a functionevoked by the hook in response to the call makes the font substitutioninstead of the operating system function whose call was intercepted. Insome embodiments of the third aspect of the invention subpixel optimizedfonts are used in the operating system of the computer.

[0333] In some embodiments of the third aspect of the invention theapplication is a browser. In some embodiments of the third aspect of theinvention the application is not a browser.

[0334] According to a fourth aspect of the invention the metrics forsubpixel optimized fonts are used in the first computer to layout thedigital content. The layout information is downloaded to the secondcomputer, and the laid out fonts are displayed with subpixel optimizedfonts.

[0335] In some embodiments of this fourth aspect of the invention thedigital content are web pages. In some embodiments of the fourth aspectof the invention the digital content are windows drawn by applicationsincluding graphical user interface elements.

[0336] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0337] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0338] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0339] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0340] Summary of the Invention Re Innovation Group I

[0341] According to a first aspect of the present invention a serversystem receives requests for fonts over a computer network and respondsto such requests by sending the requested fonts in a subpixel optimizedform back over the computer network. Here server means a computer thatsends fonts in response to a request. It could actually be operating ina peer-to-peer mode.

[0342] In some embodiments of this first aspect of the invention thefonts sent in response to the request are subpixel optimized bitmaps. Insome embodiments of the first aspect of the invention the fonts sent inresponse to the request are outline fonts that have been hinted fordisplay at subpixel resolution. In some embodiments of the first aspectof the invention the requests to the server system are for subsets ofthe characters of a given font. In such embodiments the requests to theserver system are for a subset of the roman font. In some embodiments ofthe first aspect of the invention the request to the server system is anHTTP request. In some embodiments the HTTP request contains an url thatcontains a path specification that identifies a set of one or more fontoutlines or font bitmaps.

[0343] In some embodiments of the first aspect of the invention therequest indicates whether subpixel optimized or non-subpixel optimizedfonts are to be sent in response to the request. The fonts downloadedeither are or are not subpixel optimized, respectively, in response tosuch an indication. In some embodiments of the first aspect of theinvention the server responds to the request by dynamically creatingsubpixel optimized font bitmaps for its requested character and fontfrom a font outline.

[0344] In some embodiments the server caches the font bitmap so created.If the bitmap is in the cache the next time a request for it isreceived, the server serves the cached bitmap rather than creating thebitmap anew from its corresponding font outline. In some embodiments ofthe first aspect of the invention the server stores font bitmaps andserves such stored bitmaps in response to requests. This can includestorage in cache as referred to above.

[0345] According to a second aspect of the invention an internet serverreceives HTTP requests for character-font shapes in media that it didnot serve and downloads the requested character-font shapes to therequesting machine in response.

[0346] According to a third aspect of the invention a web server servesfonts over the Internet in response to HTTP requests for subsets ofindividual characters and charges an account for the downloads.

[0347] In some embodiments of this third aspect of the invention the webserver has software that automatically allows parties to place fonts forsale on the network. In some embodiments the site has software thatautomatically checks how close a font being offered is to another fontand provides a warning if it is too close. In some embodiments of thethird aspect of the invention the web server charges as a function ofthe number of downloads. In some embodiments of the third aspect of theinvention the request identifies the source of the media containing tagsthat identify the requested fonts and the charge is to the source ofthat media. In some embodiments of the third aspect of the invention therequest identifies the party receiving the requested font and the chargeis to that party.

[0348] According to a fourth aspect of the invention the serving webpages have URLs that point to a remote internet site that defines wherea browser program receiving such served web pages can automaticallyobtain one or more character-font shapes for use in the display of thepage.

[0349] According to a fifth aspect of the invention a computer receivesdigital content. The computer sends an HTTP request over a computernetwork for bitmaps of the character font shapes it needs to render apage that it does not have. When the computer receives the requestedfont bitmaps it uses them to render the page and caches them. When theweb browser receives another page it checks its cache to see if it hasall of the character font bitmaps needed to render the page. The webbrowser sends an http request over a computer network for the characterfont bitmaps it needs to render the page. This claim is not limited touse on small screen displays or with subpixel optimization. It is notlimited to web browsing nor is it limited to requesting individualcharacters of a font.

[0350] In some embodiments of this fifth aspect of the invention thebrowser requests subsets of a font's characters. In some embodimentssuch subsets are less than all of the characters in the roman alphabet.In some embodiments all subsets are individual characters. In someembodiments of the fifth aspect of the invention the font bitmaps aresubpixel optimized bitmaps.

[0351] According to a sixth aspect of the invention the selling and/orlicensing computer programming records in a machine readable apparatusor product to multiple different commercial customers that automaticallyrequest fonts from the same internet server.

[0352] In some embodiments of this sixth aspect of the invention it isthe selling software that does the recording. In some embodiments of thesixth aspect of the invention distributing software responds to arequest for a font that it does not have by seeking the font from aglobal internet URL. In some embodiments of the sixth aspect of theinvention programming uses HTTP requests to request fonts from differentparties. In some embodiments the http request contains an URL thatcontains a path specification that identifies a set of one or more fontoutlines or font bitmaps. In some embodiments of the sixth aspect of theinvention programming caches fonts of one or more characters that havebeen previously requested and received and determines whether to requesta given combination of one or more characters from the server as afunction of whether those one or more characters are currently cached.

[0353] In some embodiments of the sixth aspect of the invention theprogramming is sold as a part of a web browser. In some embodiments theprogramming is sold as a part of a thin client web browser.

[0354] According to a seventh aspect of the invention a web browserreceives a web page and sends a request over the internet for theindividual character font shapes that it does not have but that it needsto render the page. When the browser receives the requested fonts ituses them to render the page and it caches them. When the web browserreceives another page it checks its cache to see if it has all of thecharacters needed to render the page and sends a request over theinternet for the individual character font shapes its needs to renderthe page. Browser here is meant to include a normal browser, a proxybrowser, and a thin client. This claim is not limited to use on smallscreen displays or with subpixel optimization nor is it limited to usewith a web page that has been downloaded.

[0355] In some embodiments of this seventh aspect of the invention thefonts are subpixel optimized fonts. In some embodiments of the seventhaspect of the invention the request for fonts is an HTTP request. Insome embodiments the HTTP request includes an URL that specifies a pathname that uniquely identifies an individual character of an individualfont.

[0356] According to an eighth aspect of the invention the client sendsand/or the server receives an http request for one or more font bitmapswith an url that contains a path specification identifying a set of oneor more font outlines or font bitmaps.

[0357] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0358] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0359] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0360] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0361] Summary of the Invention Re Innovation Group J

[0362] According to a first aspect of the invention text is displayed inedit fields that use sub-pixel optimized fonts.

[0363] According to a second aspect of the invention graphic userinterface (GUI) elements such as labels on buttons, check boxes, radiobuttons, menu items, and pop-up keyboards display with sub-pixeloptimized fonts.

[0364] According to a third aspect of the invention a call for afunction to draw a basic geometric shape on a screen is responded to byrendering a subpixel optimized version of that basic shape.

[0365] In some embodiments of this third aspect of the invention thegeometric figure is a straight line, a curved line, an ellipse, or arectangle. In some embodiments of the third aspect of the invention acall mathematically defines a shape that partially covers one or morepixels on a subpixel addressable screen. Subpixel optimization is usedto render the coverage of such partially covered pixels with the higherperceptible spatial resolution that is made possible by assigningdifferent luminosity values to different subpixels of the individualpartially covered pixels as a function of the coverage by the shape ofthe portion of such pixels corresponding to individual subpixels, so asto visually indicate the shapes intermediary coverage of such pixels. Insome embodiments where the shape is intended to be monochromatic colorbalancing is used to remove color imbalances introduced in the intendedmonochromatic color of the shape by assigning luminosity values tosubpixels based on their coverage by the shape. In such embodimentsnon-linear color balancing is used. In some embodiments of the thirdaspect of the invention a specific foreground color has been specifiedfor the shape. Foreground color is shifted toward a more grayscale valueto improve the spatial visual resolution.

[0366] In some embodiments of the third aspect of the invention calledfunctions and the subpixel optimization are part of an operating system.In some embodiments of the third aspect of the invention the calledfunction is part of an operating system but the subpixel optimization isnot.

[0367] According to a fourth aspect of the invention a call for afunction to draw a bitmap of a gui element is responded to by renderinga subpixel optimized version of that bitmap.

[0368] In some embodiments of this fourth aspect of the invention thecall is specifically for the creation of a gui element. In someembodiments of the fourth aspect of the invention the call requests thata bitmap be drawn and the bitmap to be drawn is a gui element.

[0369] In some embodiments of the fourth aspect of the invention thebitmap has already been subpixel optimized by the time of the call. Insome embodiments of the fourth aspect of the invention the bitmap hasnot been subpixel optimized by the time of the call and its associatedbitmap is both scaled down and subpixel optimized in response to thecall.

[0370] In some embodiments bicolor subpixel optimization is used on abitmap. In some embodiments multicolor subpixel optimization is used ona bitmap. In some embodiments subpixel optimized font bitmaps aresuperimposed on an image of gui elements.

[0371] According to a fifth aspect of the invention a method ofdisplaying an original image with a corresponding rollover image inwhich both the original image and the rollover image are subpixeloptimized images is provided.

[0372] According to a sixth aspect of the invention in subpixeloptimized animations the multiple images of the animation are eachsubpixel optimized.

[0373] According to an seventh aspect of the invention DVD video outputwith a given resolution is displayed on a subpixel addressable displayarray of whole pixels. The display array has a lower resolution in atleast one dimension than the given resolution of the DVD output.Subpixel optimization is used to display the DVD video output at ahigher perceptible spatial resolution than the display array's wholepixel resolution. In some embodiments of this eighth aspect of theinvention a user can change the display array's resolution.

[0374] According to a eighth aspect of the invention HDTV video outputwith a given resolution is displayed on a subpixel addressable displayarray of whole pixels having a lower resolution in at least onedimension than the given resolution of the HDTV output. Subpixeloptimization is used to display the DVD video output at a higherperceptible spatial resolution than the display array's whole pixelresolution. In some embodiments of this eighth aspect of the invention auser can change the display array's resolution.

[0375] According to a ninth aspect of the invention multimedia outputthat can represent images, including moving images, and bicolor shapes,such as text, including moving bicolor shapes is displayed. Subpixeloptimization is used on both the images and the shapes.

[0376] According to an tenth aspect of the invention web applets aredownloaded over a computer network. The applets are displayed assubpixel optimized bitmaps on a client computer.

[0377] In some embodiments of this tenth aspect of the invention asubpixel optimized bitmap is downloaded as part of applet is copied ontothe client screen. In some embodiments of the tenth aspect of theinvention a new subpixel optimized bitmap is generated onto a clientscreen.

[0378] According to an eleventh aspect of the invention a sub-pixeloptimized video is downloaded and displayed on the screen of a clientcomputer.

[0379] In some embodiments of this eleventh aspect of the invention thevideo is requested by a viewer computer. The requested video isdownloaded from a first computer to a proxy computer. The video is thensubpixel optimized by the proxy computer and downloaded to, anddisplayed on, the viewer computer.

[0380] In some embodiments of the eleventh aspect of the invention thevideo is compressed after it has been subpixel optimized. The video isdownloaded in compressed form, is uncompressed, and then displayed. Insome embodiments frame to frame compression is used in the compressionof the sub-pixel optimized video. In some embodiments of the eleventhaspect of the invention the video is scaled down at the same time thatit is subpixel optimized.

[0381] According to a twelfth aspect of the invention graphic elementsare sub-pixel optimized for use in animation.

[0382] In some embodiments of this twelfth aspect of the inventiongraphic elements have been downscaled from a source image and subpixeloptimized before the program session that is drawing them is run. Insome embodiments of the twelfth aspect of the invention graphic elementsare downscaled from a source image and subpixel optimized during theprogram session that is drawing them. In some embodiments graphicelements on a subpixel addressable screen are moved in a manner thatshifts the images position relative to the pixel pattern that representsit at different positions to reflect the position of the image relativeto the pixels that represent it at a higher spatial resolution than theresolution of whole pixels in the display. In some embodiments of thetwelfth aspect of the invention graphic elements are moved in units ofwhole pixels in response to animated movement calculated in finerincrements than whole pixels.

[0383] According to a thirteenth aspect of the invention the position ofan image being displayed on a subpixel addressable display is moved inincrements of motion finer than whole pixels. The image is displayedwith different subpixel optimized bitmaps at different positions in suchmovement to reflect the different coverage of the different positions

[0384] In some embodiments of this thirteenth aspect of the inventionthe image is of a bitmap. In some embodiments of the thirteenth aspectof the invention the image is of a character shape. In some embodimentsof the thirteenth aspect of the invention the image is of vector drawnnon-character shape.

[0385] According to a fourteenth aspect of the invention the image isdisplayed in electronic ink using subpixel optimized bitmaps.

[0386] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0387] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0388] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0389] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0390] Summary of the Invention Re Innovation Group K

[0391] According to a first aspect of the present invention a method ofbrowsing web pages over the internet is provided.

[0392] A computing device that has a screen in the portrait orientationhas a higher whole pixel resolution in the vertical direction than inthe horizontal direction. The screen has pixels comprised of separatelyaddressable differently colored sub-pixels. Each sub-pixel of a pixelextends across the width of the pixel one above the other so that thesub-pixel resolution of the display is higher in the vertical directionthan in the horizontal direction. An operating system has software fordisplaying a graphical user interface on the screen in the portraitorientation. Browsing software runs on the browser computer thatdisplays one or more web pages on the screen in a landscape orientation.Landscape orientation is perpendicular to the portrait orientation sothe higher subpixel resolution will extend in a horizontal directionrelative to the display of the web page. Web pages are displayed in thelandscape orientation according to the following method. Bitmaps offonts that have a higher horizontal sub-pixel resolution than verticalsubpixel resolution are used. The luminosity of eachhorizontally-displaced, differently-colored, subpixel of a given pixelused in the display of a portion of a given character's shape is derivedas a function of the extent to which the outline of the givencharacter's shape covers that individual sub-pixel.

[0393] In some embodiments of this first aspect of the invention thebrowser software also displays sub-pixel resolution images in thelandscape orientation. In such displays the luminosity of eachdifferently colored subpixel of a given pixel is derived from adifferent area of a higher resolution version of the same image. In someembodiments of the first aspect of the invention the operating systemonly draws gui elements in the portrait orientation. In some embodimentsof the first aspect of the invention the browser software downloads thesub-pixel fonts that have been optimized for display with a higherhorizontal than vertical sub-pixel resolution.

[0394] According to a second aspect of the invention a computing systemhas a screen with sub-pixel resolution that is higher in a firstdirection than a perpendicular second direction. The operating systemhas a gui that can be displayed in a first orientation in which thefirst direction is vertical. The operating software receives digitalcontent that includes a text string and displays the individualcharacters of the text string using corresponding font bitmaps in asecond, perpendicular orientation.

[0395] In some embodiments of this second aspect of the invention theoperating system can only display a majority of its gui elements in thefirst orientation. In some embodiments of the second aspect of theinvention the operating system can display a majority of its guielements in both the first and the second orientation. In someembodiments of the second aspect of the invention font bitmaps have beensubpixel optimized for higher subpixel resolution in their horizontaldirection.

[0396] In some embodiments of the second aspect of the invention acomputer system is a hand-held or smaller computer system. In someembodiments of the second aspect of the invention the digital content islaid out for display in the second orientation on a remote computer andis downloaded to the computing system for display.

[0397] In some embodiments of the second aspect of the invention a textstring is part of digital content that includes images as well as textand images are also displayed at the second orientation. In someembodiments of the second aspect of the invention digital contentincludes web pages. In some embodiments of the second aspect of theinvention digital content includes screen images that have produced by acomputer application.

[0398] According to a third aspect of the invention computing system hasa screen with sub-pixel resolution that is higher in a first directionthan a perpendicular second direction. It has an operating system thathas a gui that can be displayed in a first orientation in which thefirst direction is vertical. The operating system receives digitalcontent including text and displays it in a second, perpendicularorientation. It uses one or more bitmaps that have been subpixeloptimized for a higher subpixel resolution in their horizontaldirection.

[0399] In some embodiments of this third aspect of the invention theoperating system can only display a majority of its gui elements in afirst orientation. In some embodiments of the third aspect of theinvention the operating system can display a majority of its guielements in both the first and the second orientation. In someembodiments of the third aspect of the invention the computer system isa hand-held or smaller computer system.

[0400] In some embodiments of the third aspect of the invention a textstring is part of digital content that includes images and the imagesare also displayed in the second orientation. In some embodiments thedigital content includes web pages. In some embodiments the digitalcontent includes screen images produced by a computer application.

[0401] In some embodiments of the third aspect of the invention digitalcontent is laid out for display in the second orientation on a remotecomputer and is downloaded to the computing system for display.

[0402] According to a fourth aspect of the invention a handheldcomputing system has a screen with a whole pixel resolution that ishigher in a first direction than in a perpendicular second direction.The hand-held computing system has an operating system that has a guithat can be displayed in a first orientation where the first directionis vertical. Digital content is displayed in the second, perpendicularorientation.

[0403] In some embodiments of this fourth aspect of the invention theoperating system can only display gui elements in first orientation. Insome embodiments of the fourth aspect of the invention the operatingsystem can display gui elements in both a first and a secondorientation. In some embodiments of this fourth aspect of the inventionan application separate from the operating system displays the digitalcontent and that application generates its own graphical user interfacethat is displayed at the second orientation.

[0404] In some embodiments of this fourth aspect of the invention thedigital content includes a web page. In some embodiments a web page isscaled-down before it is displayed. In some embodiments of this fourthaspect of the invention digital content is laid out for display in thesecond orientation on a remote computer and is downloaded to thecomputing system for display.

[0405] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0406] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

[0407] All of the above innovations relate not only to a computerizedmethod, but also to a computerized system including one or morecomputers and possibly the network interconnecting them configured orprogrammed to execute such methods, and to computer programming recordedin machine readable memory which can be used on one or more computers toexecute such methods.

[0408] Other aspects of the invention not summarized above are shown inthe following “Detailed Description Of Some Preferred Embodiments.”

BRIEF DESCRIPTION OF THE DRAWINGS

[0409] These and other aspects of the present invention will become moreevident upon reading the following description of the preferredembodiment in conjunction with the accompanying drawings, in which:

[0410]FIG. 1 illustrates a process used according to some aspects of thepresent invention to improve Web browsing and/or display of other typesof computer generated content, particularly on systems with relativelylow-resolution screens.

[0411]FIG. 2 illustrates a networked computing environment in whichaspects of the invention can operate that includes a portable browser, aproxy server, a Web server, and a font server.

[0412]FIG. 3 illustrates an alternative networked computing environmentin which aspect of the invention can operate that includes a browser anda Web server.

[0413]FIG. 4 illustrates a second alternative networked computingenvironment in which aspects of the invention can operate that alsoincludes a browser and a Web server.

[0414]FIG. 5 illustrates a third alternative networked computingenvironment in which aspects of the invention can operate that includesa browser and a Web server as well.

[0415]FIG. 6 illustrates a computer system in which aspects of theinvention can operate that contains standard Web content to be displayedand browser functionality containing a process for scaling and/orsubpixel optimizing that content.

[0416]FIG. 7 illustrates an alternative computer system in which aspectsof the invention can operate that contains the content to be displayed,a proxy process for scaling and/or subpixel optimizing the content, andbrowser functionality.

[0417]FIG. 8 illustrates a second alternative computer system in whichaspects of the invention can operate that contains previously scaledand/or subpixel-optimized content.

[0418]FIG. 9 illustrates a known vertically striped RGB LCD displaydevice.

[0419]FIG. 10 illustrates some of the aspects of the invention involvedin performing the subpixel optimization of both images and text referredto with regards to steps 108 and 112 of FIG. 1, respectively.

[0420]FIG. 11 illustrates the level of readability provided by onecurrent embodiment of the invention when displaying standard Web contenton a 320 by 240 color display.

[0421]FIG. 12 illustrates the mapping of a pixel and subpixel grid, usedin a lower resolution display device, over a portion of a higherresolution source bitmap image 102.

[0422]FIG. 13 is an expansion of a section of the mapping grid of FIG.12.

[0423]FIG. 14 illustrates the positioning of a window over the sourceimage used to calculate the luminosity of a red (R) subpixel of thelower resolution display device.

[0424]FIG. 15 illustrates the positioning of such a window used tocalculate the luminosity of a green (G) subpixel of the lower resolutiondisplay device.

[0425]FIG. 16 illustrates the positioning of such a window used tocalculate the luminosity of a blue (B) subpixel of the lower resolutiondisplay device.

[0426]FIG. 17 illustrates scan lines used in a scan line coverage methodto calculate the subpixel luminosity of a red subpixel on a lowerresolution display device by estimating the portion of the redsubpixel's associated window in a higher resolution source image that iscovered by one or more pixel of different colors.

[0427]FIG. 18 illustrates similar used to calculate the luminosity of agreen (G) subpixel of the lower resolution display device.

[0428]FIG. 19 illustrates scan lines similar to those shown in FIGS. 17and 18 except that they are used to calculate the luminosity of a blue(B) subpixel of the lower resolution display device.

[0429]FIG. 20 is a repeat of FIG. 17 provided on the same sheet as FIGS.21 and 22 for ease of comparison.

[0430]FIG. 21 illustrates the portions of the horizontal scan line shownin FIG. 20 that are covered by different source image pixels within thered pixel's source image window.

[0431]FIG. 22 illustrates the portions of the vertical scan line shownin FIG. 20 that are covered by different source image pixels within thered pixel's source image window.

[0432]FIG. 23 is identical to FIG. 18 and is provided on the same sheetas FIGS. 24 and 25 for ease of comparison.

[0433]FIG. 24 illustrates the portions of the horizontal scan line shownin FIG. 23 that are covered by different source image pixels within thegreen pixel's source image window.

[0434]FIG. 25 illustrates the portions of the vertical scan line shownin FIG. 23 that are covered by different source image pixels within thegreen pixel's source image window.

[0435]FIG. 26 is identical to FIG. 19 and is provided on the same sheetas FIGS. 27 and 28 for ease of comparison.

[0436]FIG. 27 illustrates the portions of the horizontal scan line shownin FIG. 26 that are covered by different source image pixels within theblue pixel's source image window.

[0437]FIG. 28 illustrates the portions of the vertical scan line shownin FIG. 26 that are covered by different source image pixels within theblue pixel's source image window.

[0438]FIG. 29 is a highly simplified pseudocode description of asubpixel optimization method that calculates subpixel luminance valuesbased on line coverage values, such as the line coverage valuesillustrated with regard to FIGS. 17 through 28.

[0439]FIG. 30 illustrates how two horizontal and two vertical scan linescan be used on alternate embodiments of “line coverage” methods forcalculating the colors of pixels in subpixel-optimized scaled images.

[0440]FIG. 31 illustrates how two diagonal scan lines can be used onalternate embodiments of “line coverage” methods for calculating thecolors of pixels in subpixel-optimized scaled images.

[0441]FIG. 32 illustrates how a combination of two diagonal, onehorizontal, and one vertical scan lines can be used on alternateembodiments of “line coverage” methods for calculating the colors ofpixels in subpixel-optimized scaled images.

[0442]FIG. 33 illustrates line coverage for two horizontal coveragelines at a ½ horizontal and vertical scaling.

[0443]FIG. 34 illustrates line coverage for two vertical coverage linesat the ½ horizontal and vertical scaling shown in FIG. 33.

[0444]FIG. 35 illustrates line coverage for two horizontal coveragelines at approximately a ⅖ horizontal and vertical scaling.

[0445]FIG. 36 illustrates line coverage for two vertical coverage linesat the approximately ⅖ horizontal and vertical scaling shown in FIG. 35.

[0446]FIG. 37 illustrates line coverage for two horizontal coveragelines at approximately a ⅔ horizontal and vertical scaling.

[0447]FIG. 38 illustrates line coverage for two vertical coverage linesat the approximately ⅔ horizontal and vertical scaling shown in FIG. 37.

[0448]FIG. 39 illustrates the source image pixel window used in an “areacoverage” method of calculating the color values of a subpixel-optimizedscaled image.

[0449]FIG. 40 is similar to FIG. 39 except that it uses differenthatching to illustrate the areas of different source image pixels withina source image window that are used to calculate a subpixel's luminosityvalue according to one such “area coverage” method.

[0450]FIG. 41 is a highly simplified pseudocode description of asubpixel optimization method that calculates subpixel luminance valuesbased on an area coverage values, such as those discussed with regard toFIGS. 39 and 40.

[0451]FIG. 42 illustrates a source image window and associated scanlines that can be used in the production of a scaled bicolorsubpixel-optimized image of a bitmap image to associated a luminosityvalue with a red subpixel.

[0452]FIG. 43 illustrates a source image window and associated scanlines that can be used in the production of a scaled bicolorsubpixel-optimized image of a bitmap image to associate a luminosityvalue with a green subpixel.

[0453]FIG. 44 illustrates a source image window and associated scanlines that can be used in the production of a scaled bicolorsubpixel-optimized image of a bitmap image to associate a luminosityvalue with a blue subpixel.

[0454]FIG. 45 illustrates the luminosity of a set of source imagegrayscale pixels associated with a portion of an RGB subpixel displaygrid.

[0455]FIG. 46 illustrates how the luminosity associated with anindividual subpixel shown in FIG. 45 is distribution under a traditionallinear filtering method.

[0456]FIG. 47 illustrates subpixel luminosity values that result fromthe traditional linear filtering method shown in FIG. 46 being appliedto multiple subpixels in an pixel row.

[0457]FIG. 48 illustrates the distribution of the minimum subpixelluminosity values under a non-linear filtering.

[0458]FIG. 49 illustrates the distribution of the excess luminosityvalues under a continuation of the non-linear filtering method shown inFIG. 48.

[0459]FIGS. 50 through 52 compare, respectively, the original sourcepixel luminosities with the results of the linear and non-linearfiltering methods.

[0460]FIG. 53 is a highly simplified pseudocode representaton of asoftware method for creating a subpixel-optimized representation of abicolor bitmap.

[0461]FIG. 54 is a flow diagram of a process to allow a user todynamically tradeoff color and positional resolution.

[0462]FIG. 55 illustrates the mapping between a character-font shapedefined by an outline font description and an array of pixels, havingsubpixels, used to represent that shape on a subpixel addressabledisplay;

[0463]FIG. 56 is a screen shot of a 320×240 screen of a web pageproduced by one embodiment of the present invention;

[0464]FIG. 57 is a 2× blowup of the screen shot shown in FIG. 56;

[0465]FIG. 58 illustrates how a computer can access font bitmaps or fontoutlines from a font server;

[0466]FIG. 59 illustrates how a computer can access font bitmaps or fontoutlines that it has stored within it;

[0467]FIG. 60 is a highly simplified pseudocode representation of analgorithm for calculating a subpixel-optimized bitmap of acharacter-font shape using non-linear color balancing of the typedescribed above with regard to FIGS. 48 through 52;

[0468]FIGS. 61 through 63 illustrate the size of the source image windowin a character-font shape image, such as that shown in FIG. 55, used,respectively, to determine a coverage value for each of the threesubpixel's of an individual pixel of a pixel array such as that shown inFIG. 55;

[0469]FIGS. 64 through 67 illustrates some prior art techniques thathave been used to calculate coverage values for non-square rasterizationunits (usually whole pixels in the prior art);

[0470]FIGS. 68 through 87 illustrate a computationally efficient methodof calculating the coverage value of rasterization units, using weightedline coverage values, which method is used in some embodiments of thepresent invention to calculate a coverage value for subpixels;

[0471]FIGS. 88 through 90 illustrate some of the other arrangements ofcoverage lines that can be used with a weighted line coverage algorithmof the general type described with regard FIGS. 68 through 87;

[0472]FIG. 91 illustrates a mapping of an array of pixels, and theirrespective subpixels, into an image of a portion of a hypothetical fontoutline;

[0473]FIG. 92 illustrates corresponding coverage values that have beencalculated for the subpixel's shown in FIG. 91;

[0474]FIG. 93 corresponds to FIG. 46, and like FIG. 46 illustrates how aprior art linear color balancing method distributes all of an individualsubpixel's coverage value over a series of adjacent subpixel's within agiven pixel row;

[0475]FIGS. 94 and 95 illustrates color balance filters that can be usedwith the non-linear color balancing method described with regard FIG.60;

[0476]FIG. 96 is a highly simplified pseudocode description of analgorithm that can be used to map the whole-pixel composite alpha valuescalculated for font bitmaps by a method such as that shown in FIG. 60into a more limited color space of such whole-pixel composite alphavalues;

[0477]FIG. 97 is a highly simplified pseudocode description of analgorithm for displaying text strings on a subpixel addressable displayusing font bitmaps created by a combination of the methods illustratedin FIGS. 60 and 96;

[0478]FIGS. 98 through 101 illustrate how well the present invention candisplay web pages on a 320×240 screen, with FIGS. 98 and 100 each beinga screen shot of a 640×480 layout of a different web page, and FIGS. 99and 101 showing how the present invention is capable of displaying eachof these two web pages, respectively, on a 320×240 screen;

[0479]FIG. 102 is a schematic block diagram of some of the datastructures and programming used by a proxy server and thin clientcomputer to enable a user of the thin client computer to access webcontent on a scaled-down, subpixel-optimized screen;

[0480]FIG. 103 is a portion of the HTML code of the web page illustratedin FIGS. 98 and 99;

[0481]FIG. 104 illustrates the layout of a web page produced by theproxy server and the portion of that layout that falls within the proxyserver's virtual screen, which in this example corresponds to theportion of the web page shown in FIG. 99;

[0482]FIGS. 105A and 105B are highly simplified pseudocode descriptionsof programming on the proxy server shown in FIG. 102;

[0483]FIGS. 106A through 106C are highly simplified pseudocodedescriptions of proxy server programming for capturing, scaling-down,and subpixel-optimizing a representation of a portion of a web page anddownloading it to a thin client computer;

[0484]FIG. 107 is a highly simplified pseudocode description ofprogramming for the actual downloading of the web page representationcaptured by the programming of FIGS. 106A through 106C;

[0485]FIG. 108 is a highly simplified representation of the datadownloaded to a thin client computer by the programming illustrated inFIG. 107;

[0486]FIGS. 109A through 109C are highly simplified pseudocoderepresentations of programming on the thin client shown in FIG. 102;

[0487]FIGS. 110 through 112 illustrate how, if a user clicks on a textentry field on a web page's display on the thin client shown in FIG.102, a pop-up keyboard is shown that allows the user to enter text intothat field;

[0488]FIG. 113 illustrates how the user can use the same popup keyboardto enter URLs that allow him or her to access desired websites;

[0489]FIG. 114 is virtually identical to FIG. 13 except that itillustrates an embodiment of the invention having a toolbar at the topof the thin client computer screen that includes graphical userinterface buttons and a URL text entry field;

[0490]FIGS. 115 and 116 are highly simplified pseudocode representationsof programming on a proxy browser and thin client computer,respectively, that is used in an alternate embodiment of the inventionin which the thin client computer stores the layout of an entire webpage to allow it to more quickly scroll and zoom relative to that webpage;

[0491]FIG. 117 is a schematic illustration used to help explain theoperation of the pseudocode illustrated in FIGS. 115 and 116;

[0492]FIGS. 118 through 120 illustrate how the present invention canallow a user to rapidly select a portion of a web page or a screen andthen zoom to that selected portion;

[0493]FIGS. 121 through 128 illustrate a zoom-click aspect of theinvention that allows a user to view and select portions of a web pageor a screen with greater accuracy;

[0494]FIG. 129 is a highly simplified pseudocode description ofprogramming for allowing a user to have selected text reflowed across agiven screen width at a larger scale;

[0495]FIGS. 130 through 137 are used to illustrate how the text re-flowcapability shown in FIG. 129 can operate;

[0496]FIG. 138 is used to illustrates how multiple client computers canbe programmed to access a common font server and/or a common proxyserver;

[0497]FIG. 139 is a highly simplified pseudocode description ofprogramming that can be used on one or more font servers;

[0498]FIG. 140 illustrates how certain aspects of the present inventioncan be used to allow a client computer to view screens that are drawn byapplications (which can include, but are not limited to, one or more webbrowsers) running on a remote computer in a scaled-down,subpixel-optimized manner by intercepting calls made by suchapplications to the remote computer's operating system;

[0499]FIG. 141 illustrates how subpixel-optimized, scaled-down views canbe had of screen output generated by application programs (which caninclude but are not limited to one or more web browsers) running on agiven computer, even if those applications have not been programmed togenerate such views, on the screen of that given computer, byintercepting calls to the computer's operating system made by suchapplications;

[0500]FIG. 142 illustrates how certain aspects of the present inventioncan be used allow portable small-screen, thin-client computers to accessweb content and the screen output of various application programsthrough both local and/or Internet wireless communication;

[0501]FIGS. 143 and 144 are used to illustrate how in some embodimentsof the present invention subpixel-optimized output is displayed with alandscape orientation by rotating a computing device that has anoperating system programmed to work in a portrait orientation;

[0502]FIG. 145 is a highly simplified pseudocode description ofprogramming use to draw a simple shape with a subpixel-optimizedresolution;

[0503]FIG. 146 is a highly simplified pseudocode description of how webapplets can be used to draw subpixel-optimized elements on the screen ofa computer;

[0504]FIG. 147 is a highly simplified block diagram illustrating howrollover images can be subpixel-optimized;

[0505]FIG. 148 is a highly simplified block diagram illustrating howGIFF animations can be subpixel-optimized;

[0506]FIG. 149 is a highly simplified pseudocode description of how 3-Danimation can be subpixel-optimized;

[0507]FIGS. 150 and 151 are highly simplified pseudocode descriptions ofhow a client/server gaming system can be used to providesubpixel-optimized game images on a client computer;

[0508]FIG. 152 is a highly simplified pseudocode description of howsubpixel-optimized displays can be made of images having transparencymaps;

[0509]FIG. 153 is a highly simplified pseudocode description of howvideo using interpolation between keyframes can be subpixel-optimized;

[0510]FIG. 154 is a highly simplified pseudocode description of howvideo whose representation includes the drawing of screen changes toless than a whole frames can be subpixel-optimized;

[0511]FIGS. 155 and 156 are highly simplified pseudocode description ofdifferent methods of displaying images that move relative to a displaywindow;

[0512]FIGS. 157 through 159 are highly simplified pseudocode descriptionof how subpixel optimization can be applied to video that is beenrepresented by various compression techniques;

[0513]FIG. 160 is a highly simplified pseudocode representation ofprogramming for enabling a server computer to downloadsubpixel-optimized, scaled-down video to a client computer;

[0514]FIG. 161 is a highly simplified pseudocode description ofprogramming on both a client and proxy computer to enable the clientcomputer to access scaled-down, subpixel-optimized video from otherservers through a proxy computer;

[0515]FIG. 162 is a highly simplified pseudocode representation ofprogramming that allows electronic ink to be viewed more clearly;

[0516]FIGS. 163 through 166 are used to help illustrate the benefits ofthe programming describe with regard FIG. 162;

[0517]FIG. 167 illustrates that the present invention relates not onlyto methods, but also to programming and data related to such methodsstored in a machine readable form or embodied in a propagated signal,and to programmed and/or hardwired computer systems for performing suchmethods and/or use such programming and/or data.

[0518]FIGS. 168 through 184 are used to describe additional improvementsto the invention for improving the clarity of color-balancedsubpixel-optimized font bitmaps produced by the present invention.

[0519]FIG. 185 is a higher level description of the selected-text reflowmethod described with regard to FIGS. 129 through 134;

[0520]FIG. 186 is a high-level pseudocode description of a zoom-to-fitmethod;, of the general type described with regard to FIGS. 118 through120;

[0521]FIG. 187 is a high-level pseudocode description of a drag scrollmethod, that allows a user to easily navigate within the display of aweb page's layout;

[0522]FIG. 188 is a high-level pseudocode description of a click-zoommethod that enables the user to rapidly selected to zoom in on a desiredportion of the display of a layout of a web page;

[0523]FIG. 189 is a highly simplified pseudocode description of thezoomclick method described with regard to FIGS. 121 through 128;

[0524]FIG. 190 is a highly simplified pseudocode description of a methodthat allows a user to see a zoom-out view of a web page using greeking;

DETAILED DESCRIPTION OF SOME PREFERRED EMBODIMENTS

[0525]FIG. 1 is a high level diagram that represents basic processes anddata representations that may be used according to some aspects of thepresent invention to improve Web browsing and/or display of other typesof computer generated content, particularly on systems with lowresolution displays.

[0526] Digital content 100, including one or more bitmap images 102 andtext 104 shown at the top of FIG. 1 is displayed in a subpixel-optimizeddownscaled format 106 shown at the bottom of that figure. In oneembodiment of the invention a difference process, comprised of step 108is used to subpixel-optimize the display of the bitmap images 102, thanis used to subpixel optimize the display of the text content. Step 108uses a subpixel optimization routine that is particularly suited forproducing subpixel-optimized images from color bitmaps. The process 108also scales down the bitmaps for display on screens having a lowerresolution than that at which most Web content is currently displayed.

[0527] The text 104 contained in the digital content 100 is processedfor display on a small-resolution subpixel-addressable screen by usingsteps 110 and 112. Step 110 replaces the fonts normally used to displaytext with fonts that are optimized for display at small resolutions onsubpixel-optimized screens. Then step 112 uses font bitmaps from thesubstituted fonts that have been produced by a subpixel optimizationroutine particularly suited for the representation of high resolutionimages of shapes of a uniform color, such as the mathematically definedoutlines commonly used to define font shapes.

[0528] One use of the present invention is in the context of a portable,low resolution Web browser that displays images and/or text, representedby a markup language, that have been downloaded from the Internet.

[0529] To date there have been multiple so-called mark-up languages. Oneof the earliest and most successful was SGML (Standard General MarkupLanguage). SGML is a text-based language that can be used to ‘markup’data with descriptive ‘metadata’ that provides information about thedata. As an example, markup metadata can be used to indicate the purposefor which the data is intended or the location within a document'svisual presentation at which the data should be positioned. It can alsobe used to indicate links to data of other types, such as images, whichare to be inserted at a given location in a text, or in a documentdescribed by the mark-up language. Several markup languages that arecommonly used today, such as HTML and XML, are derived from SGML.

[0530] In a preferred embodiment of the present invention, the digitalcontent 100 referred to in FIG. 1 above may be standard Web content thatincludes text and/or images represented by a markup language such asHTML. This standard Web content 100, representing perhaps a Web sitehome page, can be downloaded through various apparatus and methodsdescribed below for display on a portable low resolution browser device200, shown in FIGS. 2 through 4. Before display on the browser device200, the digital content 100 may be scaled and/or subpixel-optimized forenhanced readability through various methods and processes, such asthose described below.

[0531]FIG. 2 illustrates a networked computer environment implemented inaccordance with one embodiment of the present invention. The thin clientbrowser 200 program runs in a handheld or other small computing devicecapable of retrieving and displaying text and/or graphics on a smalldisplay screen, such as, for example, a liquid crystal display (LCD)screen. The browser allows a user to request digital information from aremote source, e.g., from the Internet, and to display it on a screen.

[0532] In the embodiment of the present invention illustrated in FIG. 2,a user would request the retrieval and display of digital content,containing images and/or text, by way of manipulation of the controls ofthe thin client browser 200. The requested digital content may be aspecific Web page accessible over the Internet. The thin client browser200 then makes its request 202 for content through a physically remoteproxy server 210 over a network 138, which can be, for example, a LAN, aWAN, or the Internet.

[0533] The proxy server 210 runs a proxy process 216 that responds tothe request for digital content by generating a corresponding request214 to a physically remote Web server 220 that contains the digitalcontent 100 requested by the user. Server 220 responds to the proxyserver request 214 by a download 222 of the digital content 100 over thenetwork 138 to the proxy server 210.

[0534] The proxy process 216 within the proxy server 210 then uses itscomputational resources to scale and subpixel optimize the digitalcontent 100, including performing the functions 108 and 110 illustratedin FIG. 1. Scaling and subpixel optimizing are aspects of the presentinvention that result in the enhanced readability of images, such astext and/or graphics, on small display devices. They will be discussedin greater detail in a subsequent section.

[0535] The proxy server 210 completes a download 212 of the now scaledand subpixel-optimized content to the browser 200. At this point, theuser is able to view the content on the screen of the browser 200.

[0536] In the embodiment of the invention shown in FIG. 2, the textportion of the digital content is downloaded to the browser in the formof one or more strings of characters and associated designations of thefont family, font size, and other font attribute. The thin clientbrowser performs the function 112 shown in FIG. 1 by displaying thestrings with images composed from individual subpixel-optimized fontbitmaps. If the thin client does not have bitmaps for any character insuch a string in the font size and family specified for it, it requestsone or more such bitmaps from a font server 230. In various embodimentsof the inventions shown in FIGS. 2 through 8, the proxy server couldprovide such font bitmaps or the thin client could have them as astandard part of its software (although that would increase the size ofthe browser software). In still other embodiments, the fonts could beoutline fonts. One advantage of font bitmaps is that some font vendorsare more willing to allow bitmaps of their fonts to be distributed morefreely than outlines of such fonts.

[0537] An alternate embodiment of the present invention is illustratedin FIG. 3. In this embodiment the proxy server 210 and the Web server220 of FIG. 2 are replaced with a single remote server 220A. The thinclient browser 200 makes its request 202A for digital content 100 to theremote server 220A over a network 138. For example, network 138 may bethe Internet or a LAN and the digital content 100 may be a specific Webpage. The remote server 220A contains the requested digital content 100and runs a proxy process 216A that responds to the request 202A. Thisproxy process 216A can be any process running on the server thatdynamically scales and/or subpixel optimizes web content for display onthe thin client browsers. The proxy process 216A operates upon thestored digital content 100 and dynamically converts it to the form 106shown in FIG. 1 by performing the steps 108 and 110 of FIG. 1. Theremote server 220A completes a download 212 of the scaled and/orsubpixel-optimized content to the thin client browser 200.

[0538] Another alternate embodiment of the invention is illustrated inFIG. 4. As in FIG. 3 the thin client's request is made directly to aremote server, in this case server 220B, over a network 138. In thisimplementation the remote server 220B contains the requested digitalcontent in both a standard form 100, that is for use by standardbrowsers computers, and the scaled and/or subpixel-optimized content100A. The conversion from standard digital content 100 to the scaledand/or subpixel-optimized form has occurred in advance, therebyeliminating the need for a proxy process to dynamically convert it. Thethin client provides information to the server indicating that it shouldreceive the scaled and/or subpixel-optimized version of the requestedcontent. The remote server 220B completes a download 212 of the scaledand/or subpixel-optimized content 100 to the thin client browser 200.

[0539] A further alternate embodiment is illustrated in FIG. 5. Browser200A is a full scale browser that also contains a scaling and/orsubpixel optimization process 510. The browser 200A makes a request 202Bto a remote server 220C over the network 138 for the digital content100. Server 220C completes a download 212A of the requested digitalcontent 100 to the browser 200A. The conversion of the digital content100 to a scaled and/or subpixel-optimized form is handled by the process510 running in the browser 200A.

[0540]FIG. 6 illustrates a single computer system 600 capable of scalingand/or subpixel optimizing digital content 100. In this preferredembodiment the digital content has been created on or loaded intocomputer system 600 in advance. Computer system 600 contains a browserprocess 620 that includes a scaling and/or subpixel optimizingsub-process 640. Here the user makes a request to the computer system600 by way of an attached input device, e.g., a keyboard or mouse, forthe display of the digital content 100. The browser process 620retrieves the requested digital content 100 from one of the computersystem's storage elements, e.g., such as electronic memory or diskstorage. Once retrieved, the browser process 620 then passes the digitalcontent to the scaling and/or subpixel optimizing sub-process 640. Oncethe conversion is complete, the converted content is displayed on thedisplay screen of the computer system 600. This embodiment of thepresent invention operates without the need for a network or remoteservers.

[0541]FIG. 7 illustrates an alternate single computer systemimplementation. In this embodiment, computer system 700 contains thedigital content 100 (e.g., the contents of a specific Web page) that hasbeen created or loaded in advance, a proxy process 740, and a browserprocess 720. The proxy process 740 executes scaling and/or subpixeloptimization programming 760. The browser process passes a user requestfor display of the digital content 100 to the proxy process 740. Proxyprocess 740 then retrieves the digital content 100 from the storageelement of computer system 700. Once retrieved, the programming 760converts the digital content 100 to a scaled and/or subpixel-optimizedform that is then passed to the browser process 740 for display by thedisplay device of computer system 700.

[0542]FIG. 8 illustrates a second alternate single computer systemimplementation. Here computer system 800 contains scaled and/orsubpixel-optimized Web content 810. A browser process 820 handles userrequests for display of the content 100A, retrieves it from a storageelement of computer system 800, and displays it on the screen ofcomputer system 800.

[0543] In some embodiments of the present invention presented above, thescaling of the image from the resolution of the source image to theresolution of the subpixel addressed screen is performed at a fixedresolution. In other embodiments, the determination of the scalingfactor between the source image resolution and the resolution to bedisplayed on the subpixel addressable display screen can be specified bythe user of the browser device. In these embodiments the user of thebrowser selects from a plurality of scale factors by communicating thescale factor to the process that scales down an image read from storage.The process that scales down the image read from storage then scalesdown and subpixel optimizes the image by a horizontal and vertical scalefactor that varies as a function of the selected scale factor.

[0544] As with most other user inputs to the browser device, such scaleselections can be made by use of physical or GUI buttons, menu items,dialog boxes, or any other known user interface device on the browserdevice.

[0545] In some such embodiments, the user of the browser device maychoose a second scaling factor from a plurality of scaling factors,according to which the digital content will be re-scaled and re-subpixeloptimized and redisplayed, after the image has been previously retrievedfrom storage and displayed in subpixel-optimized form at a first scalingfactor.

[0546] In such embodiments, the scaling factor used in the first scaledand subpixel-optimized display may have been as a result of a default orpreferred scaling factor or it may have been as a result of a scalingfactor previously chosen by the user of the browser device. The user ofthe browser device may choose from a plurality of scaling factors forthe redisplay of the digital content by the method of manipulating aninput apparatus of the browser device. Such manipulation of the inputapparatus of the browser device will cause the image to be scaledaccording to the second chosen scaling factor.

[0547] Such a second scaling may occur as a result of a process runningeither within the browser device or within a physically remote server,as indicated above by FIGS. 2 through 8. The user of the browser devicemay continue to select from a plurality of scaling factors forsubsequent redisplays.

[0548] It is easiest to downscale digital images by integer multiples,which cause an integer number of pixels in a source image to fit into agiven pixel in the resulting downscaled image. For example, the scalingfrom a 640 by 480 resolution to a 320 by 240 resolution is a downscalingby a factor of two. Some embodiments of the present invention allow theuser to select from a plurality of downscale factors, includingnon-integer downscaling factors. An example of a non-integer downscalingfactor is that of a 3/2 downscaling factor that would cause a 480 by 360pixel portion of a 640 by 480 resolution source image to be scaledand/or subpixel optimized for display on a 320 by 240 resolution displayscreen.

[0549] Computer graphic displays such as cathode ray tubes (CRT) orliquid crystal display (LCD) screens almost exclusively use the RGBmodel of color space, although the invention can be used with othercolor models, such as the CMYK color model. In the RGB model, the threeprimary additive colors, red, green, and blue, are blended to form adesired color as perceived by the human eye.

[0550] Most portable computing or imaging devices have LCD screens thatuse the RGB model. Such LCD screens are comprised of a rectangular arrayof thousands of grid elements, referred to as pixels, each capable ofdisplaying any one from a large number of color values from an RGB colorspace, that when perceived as a whole, form an image. LCD screens arecharacterized by the number of horizontal and vertical pixels theycontain.

[0551] Each pixel in turn is composed of three individually addressablesub-components, referred to here as subpixels. Most commonly, the threesubpixels are rectangular red, green, and blue elements. In the mostcommon implementation, the three red, green, and blue subpixels are eachassigned a luminous intensity value such that they blend together togive the entire pixel the appearance of the desired color. All of thepixels on an LCD screen blend together, in turn, to give the appearanceof the desired image.

[0552] The subpixels are considered individually addressable because thecolor value assigned to an individual pixel has a separate red, green,and blue color component, or luminosity value, which will be displayed,respectively, by the red, green, and blue subpixels of that pixel. Thus,the luminosity of each subpixel can be separately controlled bycontrolling the value of its associated color component's luminosityvalue in the color value assigned to the pixel.

[0553] In an LCD device and other “subpixel addressed” displays, such ascolor LED (including screens using organic light-emitting diodes(OLEDs)) or gas plasma displays, each individual subpixel has a fixed,known position on the display. Many display devices, such as almost allcathode ray tube (CRT) displays are not subpixel addressable. Forexample, although each pixel of a CRT has an individual luminosity valuefor each of its red, green, and blue component colors, the exactphysical location within each such pixel of the elements that generatethe light associated with those different color values is normally notknown because it varies as a function of the individual phosphor patternof the screen, the resolution of the horizontal and vertical scan, andthe current exact state of the voltages that control the exact locationsat which individual pixels are drawn on the screen.

[0554]FIG. 9 illustrates a 12×12 portion of an LCD screen 900 that iscomprised of a plurality of pixel rows (R1-R12) and pixel columns(C1-C12). Each intersection of a row and a column constitutes a pixelelement. Actual implementations of LCD screens can have an arbitrarynumber of rows and columns, though grids of 320 by 240, 640 by 480, 800by 600, 1024 by 768, and 1280 by 1024 are frequently seen.

[0555] Pixel R1-C1 is contained within circle 910. Pixel R1-C1 is itselfmade up of three pixel sub-components herein referred to as subpixelelements. An expanded view of pixel C1-R1 is shown as expanded pixel 920at the bottom of FIG. 9. Subpixel element 902 displays as red, subpixelelement 904 displays as green, and subpixel element 906 displays asblue. The individual subpixel elements 902, 904, and 906 areapproximately ⅓ of the width of a full pixel and are equal in height toa full pixel.

[0556] As illustrated in LCD screen 900, when a plurality of such pixelsare arrayed in a grid this causes the appearance of vertical colorstripes down the LCD screen 900. This known arrangement of pixels issometimes referred to as vertical RGB striping. Other known arrangementslay the pixel elements out in the orthogonal direction such thathorizontal striping results (in which case rotating the screen by 90degrees will convert is into a vertically striped screen).

[0557] In common usage, the luminous intensity of the three subpixelelements of a pixel are set such that the pixel is perceived by thehuman eye as being of the desired hue, saturation, and intensity. TheRGB subpixel elements are used together to form a single colored pixelto represent a single sample of an image to be displayed.

[0558] One aspect of the present invention relates to the improvement ofthe readability of downloaded Web content, and other digital contentincluding text and images, on low-resolution screens, such as, forexample, displays having column by row pixel ratios of 320 by 240 or 240by 320 (in which case they can be rotated 90 degrees to have aresolution of 320 by 240). Many of the embodiments of the presentinvention discussed and shown in some detail map image and text from avirtual layout resolution of 640 by 480 pixels onto a screen with a 320by 240 pixel resolution. But the present invention can be used withother resolution screens. To give just a few examples, it could be usedto display content laid out roughly as it would look at a 1024×768resolution on a 512×384 resolution screen, or display content laid outroughly as it would look at a 800×600 pixels on a 400×300 screen. Inother embodiments, the invention can be used with relativelylow-resolution displays that have pixel dimensions that are other thaneven fractions of the horizontal and/or vertical pixel dimensions commonon personal computer screens.

[0559] In general when we refer to a small resolution screen we mean ascreen having a smaller resolution that given digital content or a givenlayout of digital content would normally be intended to be displayedupon. By such smaller screens we also mean to include portions of largerscreens, such as windows on larger screens, that have such lowerresolution.

[0560] In FIG. 10, image content 105 and text content 107 represent aportion of the subpixel-optimized display 106 of FIG. 1. The image shownin FIG. 1 is a grayscale blowup of the actual color values associatedwith the subpixel-optimized display of both text and images. The portionof the image content 105 contained within the rectangle 1000 is shownexpanded at 1020 to make its individual pixels easier to see.Correspondingly, a portion of the text content 107 contained withinrectangle 1040 is shown expanded at 1060.

[0561] It is important to note that the pixels shown at 1020 and 1060represent whole pixels because the software used to generate the images1020 and 1060 merely represents the grayscale corresponding to the RGBcolor values associated with individual whole pixels. The subpixelblowups 1020A and 1060A are attempts to represent the intensity of eachof the three subpixels associated with each pixel in the blowups 1020and 1040, respectively. 1020B is a blowup corresponding in scale andlocation to blowups 1020A and 1020. In it the pixel grid of the image isdisplayed in relatively bold lines, and the three subpixel divisionswithin each such pixel are shown in somewhat finer lines. This compositegrid is superimposed on top of the original higher resolution colorbitmap image 102 of FIG. 1 from which the pixelation patterns shown inthe blowups 1020 and 1020A have been derived. In the particular imagesshown, the resolution of the color bitmap 102 is twice as high in boththe vertical and horizontal direction as the whole pixel resolution inthe image 105 shown at the bottom of FIG. 10.

[0562] The blowup 1060B illustrates the spatial relationship between thesubpixel pattern used in the subpixel-optimized font image shown at1060Aand the high-resolution font outline of the characters representedby that font image.

[0563] As can be seen by comparing the subpixel resolution blowups 1020Aand 1060A to the corresponding whole pixel blowups 1020 and 1060,respectively, the display of subpixel-optimized representations ofimages and text at subpixel resolution provides better resolution. FIG.11 provides a representation of readability provided by an embodiment ofthe invention when displaying standard Web content on a 320 by 240 colordisplay. Bitmap 1100 at the top of the figure is a grayscale,whole-pixel blowup of an actual bitmap produced from a standard 640 by480 layout of a portion of a priceline.com web page. This highresolution image corresponds to the portion of the web page containedwithin the rectangle 1130 shown in the whole-screen lower resolution 320by 240 image of the web page shown at the bottom of FIG. 11. Bitmap 1120in the middle of the figure is a grayscale, whole-pixel blowup of thecolor bitmap of the same portion of the whole-screen 320 by 240 image.200B at the bottom of FIG. 11 represents a hand-held computing devicethat is functioning as a thin client browser of the type described withregard to FIG. 2. On the screen of this browser is shown the abovementioned whole-screen image. This 320 by 240 subpixel-optimized bitmaprepresents a 640 by 480 layout of the web page it shows. Like the blowup1020 of FIG. 10, the bitmap 1130 shown at the bottom of FIG. 11illustrates individual pixels with grayscale levels corresponding to theaverage luminosity of whole pixels. When this image is seen on a 320×240screen having vertical subpixel striping, as shown in FIG. 9, the actualimage appears to have an even higher resolution, as indicated by theblowup 1020A in FIG. 10.

[0564] Any known algorithm for deriving subpixel-optimized images ofcolor bitmaps can be used for the purposes of many aspects of thepresent invention. In one embodiment of the present invention, theluminosity assigned to each given subpixel of a given color isdetermined by the average intensity of that given color's value in eachtotal or partial pixel of the source image inside a rectangular windowin the source image. This source image window has a size and locationrelative to the source image corresponding to the area of a whole pixelin the scaled-down image centered around the given subpixel. The averageintensity assigned to the subpixel is calculated by multiplying theintensity of each source image pixel that totally or partially coversthe source image window by the percent of that window's area covered byeach such source image pixel.

[0565]FIG. 12 illustrates the mapping of a reduced resolution display'ssubpixel grid onto a portion of a higher-resolution source image 102.This figure illustrates the subpixel grid 1210 being superimposed on aportion of the original higher resolution color bitmap 102 shown inFIG. 1. Circle 1220 encloses an area of that grid that corresponds toone pixel in the intended lower resolution display device. The positionand scale of the grid patterns is determined by the relationship betweenthe higher-resolution source bitmap image and the pixel grid of theresulting subpixel-optimized images. The particular grid pattern 1210shown in FIG. 12 represents a scaling from the pixel resolution of thecolor bitmap image 102 to a display screen resolution that has one-halfas many pixels in both the horizontal and vertical direction as thesource image. An example of this scaling is that of an image havingpixelation appropriate for display on a 640 by 480 display being scaleddown for proportional display on a 320 by 240 display screen. Thus, eachbold line division of grid pattern 1210 covers four pixels of colorbitmap image 102. The dashed circle 1220 encloses one such bold linedivision that contains four higher resolution source pixels.

[0566]FIG. 13 is an expansion of the nine bold line divisions (i.e.,nine whole pixels) centered on circle 1220 of FIG. 12. The pixel insidecircle 1300 represents a single pixel of the intended display device. AsFIG. 13 makes clear, each bold line division of grid pattern 1210encloses four pixels of the higher resolution source image. The detailof FIG. 13 also illustrates that each pixel of the intended displaydevice is made up of three color subpixels, including a red, a green,and a blue subpixel, labeled “R”, “G”, and “B”, respectively.

[0567]FIGS. 14, 15, and 16, respectively, illustrate the positioning ofthe rectangular window area in the source image from which theluminosity of red, green, and blue colored subpixels in the intendeddisplay device is determined. The area of each such source image windowequals the area of a whole pixel in the scaled down image centeredaround the portion of the source image corresponding to the subpixelwhose luminosity it is being used to calculate.

[0568] Rectangle 1400 of FIG. 14 encloses the area of the source imagewindow used to calculate the luminosity of the red subpixel of the lowerresolution display device. Similarly, FIGS. 15 and 16 enclose the sourceimage windows that correspond to the green and blue subpixels of theintended display device, respectively.

[0569] As stated above, the luminosity assigned to a subpixel of a givencolor is determined by the following function, or an approximationthereof. The luminoisity is set equal to the intensity of the supixel'scolor in each pixel of the source image totally or partially within thesubpixel's corresponding source image window, times the percent of thatwindow's area covered by each such source image pixel.

[0570]FIGS. 17, 18, and 19 are blow-ups of the central portion of FIGS.14, 15, and 16, respectively, illustrating in greater detail how theluminosity of the red, green, and blue, subpixels is a function of therespective color luminosities of whole or partial source image pixelscontained within a source image window centered around the portion ofthe source image corresponding to a subpixel of a given color This isshown in FIG. 17 for the red (R) subpixel, in which window area 1700 iscentered on the portion of the source image corresponding to thatsubpixel. Window area 1800 of FIG. 18 illustrates the same for the green(G) subpixel, and window area 1900 of FIG. 19 illustrates the same forthe blue (B) subpixel.

[0571] As a result of the shift between the source image windows foreach subpixel, the color value derived for each subpixel represents thesubpixel's corresponding color in a portion of the source imagecorresponding to the location of each subpixel, itself, rathercorresponding to the location of its pixel as a whole. As a result, thisuse of different source image windows for different subpixels of a givenpixel increases the spatial resolution of the resulting image.

[0572] In the embodiment of the invention shown in FIGS. 17, 18, and 19,the determination of which pixels fall within a subpixel's source imagewindow and the percent of that window each such pixel covers is made byan approximation based on the percentages of horizontal and verticalscan lines that are covered by such source image pixels. In FIG. 17, thecolor value of the red subpixel is determined as a result of thepercentage of a horizontal coverage line 1720 and a vertical coverageline 1740 this is covered by individual source image pixels, times thered color value of each such pixel. The same is true, for respectivecolor values, for the scaled image's green (G) subpixel of FIG. 18 andits horizontal and vertical coverage lines 1820 and 1840 respectively,and the scaled image's blue (B) subpixel of FIG. 19 and its horizontaland vertical coverage lines 1920 and 1940, respectively.

[0573] It should be noted that horizontal coverage lines 1720, 1820, and1920 are intended to represent vertical positions just above or belowthe vertical midpoint of their corresponding rectangular area. This isso the coverage line will not exactly equal that location in the sourceimage that represents the border between vertical pixels. In the samemanner, the vertical coverage line 1740 is intended to represent itshorizontal position just to the left or the right of the horizontalmidpoint of the rectangular area 1700.

[0574] The above defined coverage lines represent an embodiment of anaspect of the invention that relates to the use of a continuousfunction, which is intended to include a reasonably high resolution(such as 5 or more bit resolution) equivalent thereof, to determine theextent to which the area of an original image associated with a givencolor subpixel is covered by a given color or shape. In continuouscoverage functions, this coverage is determined, not by sampling, butrather by a mathematical function that determines boundary locations atwhich the given coverage starts and stops in one or more dimensions, andcalculates coverage as a function of lengths or areas between one ormore such boundaries or between such boundaries and the boundary of thesource image window associated with a given subpixel.

[0575] In the embodiment of the invention shown in FIGS. 17, 18, and 19and in FIGS. 30, 31, and 32 the calculation of this continuous coveragefunction is sped up by estimating the area of each source image pixelthat is in a given subpixel's corresponding source image window area bydetermining the portion of one or more scan lines within the rectangulararea that is covered by each of one or more of the source image's pixelswithin the window. The percent of the total length of the window'sscanning lines that is covered by a given pixel is multiplied by thevalue of the subpixel's color in that pixel. Such products are summedover all pixels that cover any of the window's scan lines to produce thesubpixel's color value. This is how a “line coverage” type of continuouscoverage function can be used to determine the luminosity of a subpixelwhen creating scaled images of color bitmaps.

[0576]FIGS. 20, 21, and 22 illustrate the use of a single horizontal anda single vertical coverage line within the source image window 2000associated with the red (R) subpixel in the lower resolution displayscreen. In FIG. 21, the coverage value associated with horizontal scanline 2020 is the summation of:

[0577] the red value of the pixel covered by bracket 2120, times theportion (⅓) of horizontal scan line 2020 covered by bracket 2120, plus

[0578] the red value of the pixel covered by bracket 2140, times theportion (½) of horizontal scan line 2020 covered by bracket 2140, plus

[0579] the red value of the pixel covered by bracket 2160, times theportion (⅙) of horizontal scan line 2020 covered by bracket 2160.

[0580] In similar fashion the coverage value associated with verticalscan line 2040 shown in FIG. 22 is the summation of:

[0581] the red value of the pixel covered by bracket 2220, times theportion (½) of vertical scan line 2040 covered by bracket 2220, plus

[0582] the red value of the pixel covered by bracket 2240, times theportion (½) of vertical scan line 2040 covered by bracket 2240.

[0583] The total coverage value for the red subpixel is one half of thecoverage value calculated for the horizontal scan line plus one half ofthe coverage value calculated for the vertical scan line.

[0584] Similarly, FIGS. 23, 24, and 25 illustrate the use of singlehorizontal and single vertical coverage lines within the source imagewindow 2300 associated with the green (G) subpixel in the lowerresolution display screen, and FIGS. 26, 27, and 28 illustrate the useof single horizontal and single vertical coverage lines within thesource image window 2600 associated with the blue (B) subpixel in thelower resolution display screen.

[0585]FIG. 29 is highly simplified pseudocode representation of analgorithm 2900 for deriving scaled subpixel-optimized images from asource bitmap image using line coverage of the type described above withregard to FIGS. 17 through 28.

[0586] This algorithm performs a loop 2901 for each pixel row of theoutput image (i.e, the scaled, subpixel-optimized image).

[0587] This loop performs an inner loop 2902 for each pixel in itscurrent row. For each such pixel the loop 2902 performs a loop 2904 anda function 2914.

[0588] The loop 2904 is comprised of an interior loop 2906 that isperformed for each of the subpixel's scan lines, such as the scan linesshown in FIGS. 17 through 28.

[0589] The loop 2906 includes a function 2908 and a loop 2910. Thefunction 2908 calculate each intersection between that scan line and apixel boundary. Normally, such intersection calculations and the othercalculations in this algorithm are performed with limited accuracy, suchas for example 6 to 8 bits of accuracy, to reduce the storage andcomputational requirements of such computation.

[0590] Then a loop 2910 performs a function 2912 for each portion of ascan line that occurs between two scan line ends, a scan line end and apixel boundary, or two pixel boundaries. Function 2912 adds to acoverage value associated with the current subpixel of the loop 2904 amultiple of the percent of that scan line covered by current portion ofloop 2910 times the component col or value of the pixel covering thatportion corresponding to the color of the current subpixel, all dividedby the number of the subpixel's scan lines.

[0591] Once the loop 2904 has calculated the subpixel luminosity valuefor each subpixel of the current pixel, function 2914 sets the currentpixel's color value equal to a color having a compound RGB value withred, green, and blue values equal to the subpixel luminosity valuescalculated, respectively, for the red, green, and blue subpixels of thecurrent pixel.

[0592] In different embodiments of the invention different length colorvalues can be used, such as 24 bit, 16 bit, or 12 bit color values.Although the system can be used with a limited color palette, it worksbest with true-color colors, which have at least 4 bits of variabilityfor each of the red, green, and blue subpixels. 16 bit color, whichcommonly allocates 5 bits for red and blue and 6 bits for green (becauseof the eyes' greater sensitivity to green), provides even better visualresults.

[0593] Although the embodiment of the invention described above withregard to FIGS. 17 through 28 makes use of a single horizontal and asingle vertical coverage scan line, other embodiments of this aspect ofthe invention may have more scan lines and/or have scan lines inorientations other than horizontal and vertical.

[0594]FIG. 30 illustrates the use of two horizontal coverage lines andtwo vertical coverage lines within a source image window 3020 that canbe used to estimate the color coverage associated with a red (R)subpixel of a subpixel-optimized image.

[0595]FIG. 31 illustrates the use of two diagonal coverage lines withina source image window 3120 associated with a green (G) subpixel of asubpixel-optimized image.

[0596]FIG. 32 illustrates the use of two diagonal coverage lines, ahorizontal coverage line, and a vertical coverage line within a sourceimage window 3220 associated with a blue (B) subpixel of asubpixel-optimized image.

[0597] Of course each of the arrangements of coverage lines shown ineach of FIGS. 30 through 31 can be used on either red, green, or bluepixels.

[0598]FIGS. 33 through 38 illustrate that the line coverage method ofcalculating subpixel luminosity values can be applied to a broad rangeof different scalings between the size of a source image and theresulting subpixel-optimized image. This is true because the linecoverage method measures line coverage at a fairly high resolution,compared, for example, to many sampling techniques. This means that itdoes a relatively good job of measuring the coverage of pixels that areonly partially in a subpixel's source image window, as will often resultwhen using scaling factors that are non-integer ratios.

[0599] In one embodiment of this aspect of the invention a seven bitresolution is used in calculating line coverage, which producessatisfactory results. Higher or lower resolutions can be used, but it ispreferred that the line coverage resolutions be higher than the two tofour bit per dimension resolution commonly used in techniques thatmeasure coverage by sampling coverage within a subpixei's source imagewindow at an array of sixteen (4×4) to two fifty-six (16×16) points.

[0600]FIG. 33 illustrates the coverage of two horizontal coverage linesby various source image pixels within a source image window associatedwith the blue (B) subpixel for a mapping from a source image resolutionto a destination pixel-optimized image having half as many horizontalpixels and vertical pixels. FIG. 34 does the same for the two verticalcoverage lines used with such subpixel luminosity calculation scheme.Thus, FIGS. 33 and 34 illustrate an integral ratio between the number ofpixels in the source and the reduced images.

[0601]FIGS. 35 and 36 illustrate the coverage of horizontal and verticalscan line, respectively, by pixels of the same source image for ascaling factor in which the reduced subpixel-optimized image has onlyabout 40% as many horizontal and vertical pixels as the source image.

[0602]FIGS. 37 and 38 illustrate the same for a scaling factor in whichthe subpixel-optimized image has about 66.66% as many horizontal andvertical pixels as the source image.

[0603] It can be seen that the scan line coverage technique shown inFIGS. 33 through 38 provide an accurate estimate of the percent of eachsource image window covered by each source image at each of differentscaling, with relatively little computation.

[0604]FIGS. 39 and 40 illustrate the geometries associated with an“area” type of continuous coverage function. In some embodiments of theinvention, the percent of a given subpixel's source image window coveredby each of its associated source image pixels is calculated, not by theline coverage approximation described above, but rather by an actualcalculation of the area of that part of each such source image pixelthat lies within the subpixel's source image window. For each suchsource pixel, the component color value of the pixel corresponding tothe color of the current subpixel is determined. The luminosity valuefor each subpixel is then calculated by summing the multiples of thepercentage of the source image window covered by a given source imagewindow times the value of the subpixel's color for each source imagepixel that appears in its source image window.

[0605]FIG. 39 illustrates the source image window area 3900 associatedwith a blue (B) subpixel. Source pixel 3920 is contained within sourceimage window 3900, as are portions of eight other source pixels. Thepercent of the source image window 3900 covered by a source pixel 3920is calculated by taking the ratio of the area of the hatched portion4020 of FIG. 40 over the area of the whole source image window 4000.Similarly, the percent of the source image window 4000 covered by theother source pixels contained within it a re calculated by taking theratios of their area within the source image window, as indicated bydifferently hatched areas of the window 4000, over the total area ofthat source image window.

[0606]FIG. 41 provides a highly simplified pseudocode representation ofan algorithm 4100 that can be used to implement an area coveragefunction of the type discussed above with regard to FIGS. 39 and 40.

[0607] The algorithm comprises a loop 4102 that is performed for eachpixel row in the sub pixel-optimized image to be produced. For each suchrow the loop 4102 performs an inner loop 4104 for each pixel in thatrow.

[0608] This inner loop 4104 is comprised of a loop 4106 and a function4116. The loop 4106 is performed for each subpixel in the current pixelof the loop 4104. This inner loop 4106 is comprised of a function 4108and a loop 4110. The function 4108 determines which pixels of the sourceimage are in the source image window associated with the subpixel, asdescribed above. Once this is done the loop 4110 is performed for eachsuch source image pixel.

[0609] The loop 4110 is comprised of a function 4112 and a function4114. The function 4112 calculates the percentage of the subpixel'ssource image window area covered by the current source image pixel ofthe loop 4110. Then step 4114 adds to the luminosity value beingcalculated for the current subpixel of the loop 4106, the multiple ofthe percentage of the subpixel's source image window area covered by thecurrent source image pixel, times the source image pixel's colorcomponent value corresponding to the color of the current subpixel.

[0610] Once the loop 4106 has been performed for each subpixel in thecurrent pixel, function 4116 sets the current pixel's color value equalto a color having RGB color component values corresponding to the red,green, and blue subpixel luminosity values calculated by the loop 4106.

[0611]FIGS. 42 through 53 relate to aspects of the invention concerningbicolor subpixel-optimized images.

[0612] A “bicolor” image is one in which individual pixel colors rangebetween two different color values. Commonly these two different colorvalues will be black and white, and the pixels of the source andsubpixel image will have values limited to black, white, or a grayscalevalue in between. In some embodiments, however, the two different colorvalues can represent any uniform foreground and background colors, andcolors intermediary between them. Bicolor images are often used torepresent text, because the display of text is often bicolored,involving a foreground color and a background color. But bicoloredimages can also be used to represent other bicolored shapes, bicoloredbitmaps, portions of multicolored bitmaps that are bicolored, ormulticolored bitmaps that are to be represented with bicolored output,such as a grayscale representation of a colored image. For example, amulticolor source image can be treated as a corresponding grayscaleimage, merely by treating each of its pixels as having a grayscale valuecorresponding to the average luminosity of each of its three colorcomponents.

[0613] The advantage of using such bicolored subpixel optimized outputimages is that they often can provide a higher spatial resolution thanmulticolor subpixel optimized output images. Such higher resolution isallowed where the bicolors are black and white, greyscale values, oropacity and transparency, because each subpixel can represent both theforeground and background of such bicolor pairs equally as well as anyother, since each color of each such bicolor pair has equal componentsof red, green, and blue. Except for the need to perform color balancing,as is described below, each subpixel's luminosity can be determined as afunction of the extend to which the portion of the source i magecorresponding to its own area in the output image is covered by aforeground or a background color. This use of a smaller source window,i.e, one corresponding to a subpixel's size rather than to a pixel'ssize, allows a more accurate spatial representation of the source image.

[0614] Where the foreground and background colors are not black andwhite, the resolution produced by bicolor subpixel-optimized images willbe best if the foreground and background color each have red, green, andblue values that a re relatively equal in luminosity, but with theaverage luminosity of the foreground and background color as differentas possible. In fact, in some embodiments of aspects of the inventionrelating to bicolored subpixel optimized images one or both of theoutput bicolors are changed from the corresponding input bicolors bybeing shifted toward a corresponding grayscale color to improve thespatial resolution of the output image.

[0615] The extent to which a subpixel of a bicolor subpixel-optimizedoutput image is to display the foreground color is sometimes representedby an alpha, or opacity, value. Such an alpha values indicates theextent to which the subpixel's luminosity should correspond to the itscolor component in the foreground color or in the background color. Analpha value of one means the subpixel's color component value shouldequal the corresponding color component in the foreground color. Analpha value of zero means it should equal the corresponding colorcomponent in the background color. An intermediary alpha values meansthe subpixel's color component value should be a weighted blend of thecorresponding color components in both the foreground and backgoundcolors. Once a subpixel-optimized bitmap is represented in terms ofalpha values it can be used to represent bicolor images of a givenpattern using different foreground and background colors. This iscommonly used to represent font shapes, since in the presentation offonts the bitmap pattern of a given character-font shape at a given sizeis often displayed with different foreground and background colors.

[0616] In some embodiments of aspects of the invention relating tobicolor subpixel optimizations of bitmap images a scaledsubpixel-optimized image of a bitmap image is produced by associating aforeground or background bicolor coverage value with each subpixel ofthe scaled image as a function of: (a) the ratio of the foreground orbackground color for each source image pixel in a source image windowcorresponding to the area of the subpixel; (b) the percent of thatwindow covered by each such source image pixels; and (c) a colorbalancing function that distributes subpixel coverage values to reducecolor imbalance. In cases in which a bicolor output image is beingproduced for either a grayscale or a multicolor input image, thecoverage values calculated for individual subpixel's can be derived as afunction of the whole pixel luminosity of source image pixels that coverits source image window. In some embodiments, the extent to which agiven luminosity value associated with a given subpixel's source imagewindow is distributed to other subpixels is a function of extent towhich the luminosity value causes a color imbalance.

[0617]FIGS. 42 through 44 illustrate a method of determining theluminosity of each subpixel of a grayscale bicolored image. In FIG. 42,rectangle 4200 encloses a window of the source image that is associatedwith the red (R) subpixel of the scaled image. The luminosity to beassociated with such red (R) sub pixel is a function of the whole pixelluminosity of the one or more source image pixels that cover the sourceimage window 4200, multiplied, respectively, by the percent of thesource image window covered by each such source image pixel. Any knownmethod for calculating or estimating such coverage percentages can beused.

[0618] In the embodiment illustrated in FIG. 42 source image window 4200has associated with it two horizontal scan lines 4210 and 4220 and twovertical scan lines. FIGS. 43 and 44 illustrate the coverage lines forthe source image windows 4300 and 4400 for green and blue subpixels,respectively. As before, to estimate the extent to which the sourceimage window areas are covered by a source pixel, a mathematicalfunction that determines boundary locations at which the given coveragestarts and stops along each scan line is run. Coverage is calculated asa function of the lengths between one or more such boundaries or betweensuch boundaries and the boundary of the source image window associatedwith the given subpixel. This can be done in a manner similar to thatdescribed above in FIG. 29.

[0619] When calculating bicolor subpixel-optimized images, colorimbalances may occur. This is because the bicolor methods is attemptingto produce an output i mage in which each whole pixel has a color valuein the spectrum between the two bicolors (usually black or white), butthe coverage values of a pixel's individual red, green, and bluesubpixels is determined by the percent of foreground color in each suchsubpixel, meaning that the color of individual output pixels would oftenhave no relation to the desired bicolor spectrum (usually grayscale), inthe absence of such color balancing.

[0620] For example, in a grayscale image, if the source image makes atransition from totally white to totally black at a locationcorresponding to the boundary between a red and green subpixel in asubpixel optimized output image, the corresponding pixel in the outputimage will have a red subpixel coverage value that would tend to causethat subpixel to be turned totally on, and green and blue subpixelscoverage values that would tend to cause those subpixels to be turnedtotally off. This would result in a visible red color for the pixel,even though, in this example, the output image is supposed to be agrayscale image.

[0621]FIGS. 45 through 47 illustrate how a traditional linear colorbalancing method of a type used in the prior art to color balancesubpixel coverage values calculated from the rasterization of fontoutlines can be used to color balance coverage values produced frombicolored bitmaps.

[0622]FIG. 45 illustrates a set of grayscale source image pixels underan RGB grid 4600. Grid 4600 has four pixel areas enclosed in bold linedivisions. Each such pixel area is associated with a whole pixel in asubpixel addressable screen on which the output image is to bedisplayed. Each pixel area is further divided into three areasassociated with the subpixels of the associated pixel on the subpixeladdressable screen. Subpixel-associated area 4610 is associated with thered (R) subpixel, subpixel-associated area 4612 is associated with thegreen (G) subpixel, and subpixel-associated area 4614 is associated withthe blue (B) subpixel. Subpixel-associated areas 4616 through 4632 areassociated with respective subpixels.

[0623] Subpixel-associated areas 4614 through 4630 are covered in wholeor in part by source image pixels having nonwhite coverage valuescorresponding to various degrees of the foreground color, which in thiscase is black. The total nonwhite coverage value of the source imagepixels in each of the subpixel-associated areas 4614 through 4630 ismapped into corresponding sub-pixel areas in the RGB grid 4700 of FIG.46. T he height of the hatched area within each of the subpixel areas4744 through 4760 is determined by the total nonwhite coverage values ofthe corresponding sub-pixel areas 4614 through 4630.

[0624] The bottom half of FIG. 46 illustrates the use of acenter-weighted, symmetrical color filter, which can be used todistribute the coverage value associated with the subpixel 4750 overfive subpixels centered around the subpixel 4750. Three ninths({fraction (3/9)}^(ths)) of the coverage value of subpixel 4750 isdistributed into sub-pixel 4750, itself. Two ninths ({fraction(2/9)}^(ths)) of the coverage value of the subpixel 4750 is distributedinto the subpixels 4748 and 4752 that are immediately to its left and toits right, respectively. To complete the color distribution of subpixel4750, one ninth ({fraction (1/9)}^(th)) of its coverage value isdistributed into subpixels 4746 and 4754, which are two subpixels to theleft and two subpixels to the right, respectively of the subpixel 4750.

[0625] In general, color balancing distributes color values within aneighborhood of nearby pixels in which the nearby pixels are normallywithin a distance of no more than one full pixel from the subpixel whosecolor is being distributed, although in some embodiments that distancemight be as large as two pixels.

[0626]FIG. 47 illustrates the result of the symmetrical center-weightedcolor balancing filter of FIG. 46 when it is applied linearly to thecoverage value calculated for each of the subpixels 4740 through 4762shown in the top half of FIG. 46.

[0627] In FIG. 47 the coverage value associated with each subpixel 4744through 4760, shown at the top of FIG. 47, is distributed using a colorbalance filter that distributes its coverage value in the sameproportion to its own subpixel and to the two subpixels to the left andright as is shown in FIG. 46. The central grid 4802 of FIG. 47graphically illustrates the size of the contribution that such adistribution makes to each of the subpixels 4740 through 4762. Thedistribution associated with each of the given subpixels 4744 through4760 is centered in a vertical column located directly below itsrespective subpixel.

[0628] RGB subpixel grid pattern 4804 shown at the bottom of FIG. 47illustrates the luminosity value that is calculated for each subpixel4740 through 4762 by summing all the contributions that have been madeto it by all of the coverage value distributions illustrated in thecenter panel 4802. To complete the method, the luminosity values of thered, green, and blue subpixels of each pixel in grid 4804 are used asthe three component color values that specified the color of each suchpixel.

[0629] While this linear method does reduce the color imbalance of thescaled image, it does so at the expense a substantial reduction inspatial resolution. This can be understood by comparing the values inRGB grid pattern 4804 at the bottom of FIG. 47, which represents thesubpixel luminosity values in the subpixel-optimized output image, tothe values in RGB grid pattern 4800 at the top of FIG. 47, whichrepresents the foreground color luminosity, or foreground color coveragevalue, of the source image pixels corresponding to the subpixels of thatoutput image. As can be seen by FIG. 47, the spatial resolution of theoutput image is smeared relative to the spatial resolution of the sourceimage.

[0630] The present invention includes an innovation that providessimilar color balancing of subpixel optimized output images, but oftenwith much less smearing of the output image. It does so by using anon-linear color balancing filtering method. A method of applying thisnonlinear filtering is illustrated in FIGS. 48 and 49.

[0631]FIG. 48's RGB grid pattern 4900 is a duplication of the RGB gridpattern 4700 of FIG. 46. Once again, the total foreground colorluminosity, or coverage values of the source image pixels thatcorrespond to an associated subpixel are represented by hatched areas.

[0632] The first phase in this non-linear color balancing method isillustrated in FIG. 48. As before, RGB grid pattern 4900 is divided intofourths by the bold line divisions and each fourth, bracketed portion4902, 4904, 4906, or 4908, is associated with a whole pixel of thescaled, or output, image. Each of the pixel areas 4902, 4904, 4906, and4908 is further divided into subpixel areas corresponding to subpixelsin the output image to be produced. For each pixel area, a determinationis made of which of its sub pixels has the lowest foreground luminosity,coverage value, and a respective luminosity (or alpha) value equal tothis minimum coverage value is added to a luminosity/alpha value that isbeing calculated for each subpixel of the pixel areas 4912, 4914, 4916,and 4918 of the RGB grid pattern 4910, shown in the bottom half of FIG.48.

[0633] In the top half of FIG. 48 the hatched line 4920 indicates theminimum coverage value of the pixel area 4902 is zero, since the firsttwo subpixel-associated areas have coverage values of zero. Thus, thestep shown in FIG. 48 sets the luminosity/alpha value for the red,green, and blue subpixel areas of pixel 4912 to zero. In like fashion,the minimum coverage value of pixel area 4904 is determined by the valueof the red subpixel area 4922 of the pixel 4904. This minimum coveragevalue is mapped into the corresponding pixel area 4914 in the bottomhalf of the figure. Similarly, the minimum coverage values of pixelareas 4906 and 4908 are mapped into pixel areas 4916 and 4918 in thebottom half of FIG. 48. The resulting partially calculatedluminosity/alpha values after the completion of this step arerepresented by the RGB grid pattern 4910 at the bottom of FIG. 48.

[0634] The second phase of the non-linear color balancing method isillustrated in FIG. 49. In this example of the second phase, the portionof the foreground luminosity/coverage value of each subpixel that is inexcess of the pixel's minimum luminosity/coverage value is mapped intothe RGB grid pattern 4910 by utilizing a color balance distributionfilter of the type shown above with regard FIGS. 46 and 47.

[0635] The pixel grid 5000 at the top of FIG. 49 corresponds to thepixel grid 4900 at the top of FIG. 48 (and has the same sub pixels 4740through 4762) except that it represents the portion of each subpixel'sforeground color luminosity/coverage value (shown in high frequencyhatching) that remains after the value of the minimum subpixelluminosity/coverage value for the corresponding pixel (shown inlow-frequency hatching) has been subtracted from it.

[0636] The subpixel grid 5002 in the middle of FIG. 49 corresponds tothe similarly shaped pixel grid 4802 in the middle of FIG. 47, exceptthat in it only the excess portion of subpixel foreground colorluminosity/coverage values shown in the top of FIG. 49 with the highfrequency hatching are distributed using color balance filters of thetype shown in FIG. 46. As can be seen in this portion of the figure, aportion of the excess luminosity/coverage value for each subpixel isdistributed to its own subpixel, to two pixels to the left, and to twopixels to the right using the same proportional filter shown in FIG. 46.

[0637] The portion of FIG. 49 near its bottom labeled by the numeral5004 shows the total of such excess luminosity/coverage value that isdistributed to each subpixel 4740 through 4762 in this example of thenon-linear method. The total excess luminosity/coverage value calculatedfor each subpixel is added to the minimum luminosity/coverage value thatbeen previously added to that subpixel by the step illustrated in FIG.48, as is illustrated at the bottom of FIG. 49, to produce the totalluminosity/alpha value to be used for each subpixel in the output image.

[0638] To complete the non-linear color balancing process, theluminosity/alpha values summed for each subpixel of RGB grid pattern4910 are used to determine the corresponding red, green, and blue, colorcomponent values of its associated pixel. The red, green, and blue colorvalues of each individual pixel in such a display may not be equal, butthe total of the red, green, and blue color values in any neighborhoodof five or so adjacent subpixels of a pixel row should be substantiallyequal, or balanced.

[0639] A comparison of the results achieved by use of the linear methodand the non-linear color balance filtering method is illustrated byFIGS. 50, 51, and 52.

[0640]FIG. 50 illustrates the original unfiltered source subpixelforeground color luminosity/coverage values as first mapped into RGBgrid pattern 4700 of FIGS. 46 and 4900 or FIG. 48.

[0641]FIG. 51 illustrates the result of the non-linear filtering method,as shown at the bottom of FIG. 49.

[0642]FIG. 52 illustrates the result of the linear filtering method, asshown in RGB grid pattern 4804 of FIG. 47.

[0643] As FIG. 51 shows, the output of the non-linear color balancingmethod more closely resembles the original spatial distribution offoreground color luminosity/coverage values of FIG. 50 than does theresult of the linear method, as shown in FIG. 52. The pattern ofluminosity values produced by the non-linear method of FIG. 51 issignificantly less spatially blurred, and, thus, provide a highervisible spatial resolution than the output produced by the linearmethod. This is because the non-linear method seeks to perform colorbalance distribution, which has the detrimental effect of blurringspatial resolution, only on those portions of subpixelluminosity/coverage values that need such distribution in order toprevent color imbalance. This can be seen by comparing the total ofsubpixel luminosity/coverage values distributed to each subpixel usingthe non-linear method FIG., as indicated by the numeral 5004 of FIG. 49,with the corresponding total that is distributed to each subpixel usingthe linear method, as indicated by the entire crosshatched area shownfor each subpixel at the bottom of FIG. 47.

[0644]FIG. 53 provides a highly simplified pseudocode description of oneimplementation of the method described with regard to FIGS. 48 and 49 ofproducing a subpixel-optimized bicolor output bitmap using thenon-linear color balancing method.

[0645] The algorithm 5300 in this figure is comprised of a loop 5301that is performed for each pixel row in the image. This loop performstwo subloops 5302 and 5322 for each pixel row.

[0646] The loop 5302 performs a loop 5304, a function 5314 and a loop5316.

[0647] The loop 5304 is performed for each subpixel in the current pixelof loop 5302. For each such subpixel it performs a function 5306 and aloop 5308.

[0648] The function 5306 determines which pixels of the source image arein a window portion of the source image corresponding to the subpixel'sarea in the scaled image. This can be performed by any known coveragecalculation or estimation function, including the ones described abovewith regard to FIGS. 17 through 44.

[0649] The loop 5308, comprised of functions 5310 and 5312, is performedfor each source image pixel that is totally or partially containedwithin the current subpixel's source image window. Function 5310calculates the percent of the source image window's area covered by thesource image pixel's area. Function 5312 adds to a foreground colorluminosity/coverage value calculated for the current subpixel, themultiple of the percentage of the window area covered by the sourceimage pixel time the source image pixel's average foreground colorintensity.

[0650] In cases in which the bicolor image is a grayscale image, theforeground color intensity can correspond to either the luminosity, orthe inverse of the luminosity, of each whole source image pixel. If thesource image is a multi-color image, the average luminosity value ofeach source image pixel's color components (i.e., its grayscaleluminosity) can be used to determine a luminosity value that can be usedfor the source image pixel in calculating its foreground color intensityfor the purposes of function 5312.

[0651] Loop of 5304 can be used to determine the subpixel foregroundcolor luminosity/coverage values of the type shown at the top of FIGS.46.

[0652] Once the loop 5304 is been performed for each subpixel in thecurrent pixel, function 5314 finds the minimum subpixelluminosity/coverage value that has been so calculated for the currentpixel, as is illustrated in the top half of FIG. 48.

[0653] Once this has been done the loop 5316, comprised of functions5318 and 5320, is performed for each subpixel in the current pixel.

[0654] Function 5318 sets a luminosity/alpha value being calculated forthe subpixel to the minimum subpixel luminosity/coverage valuedetermined for its pixel by the function 5314, somewhat as is indicatedin the bottom half of FIG. 48.

[0655] Function 5320 distributes the portion of the subpixel luminositycoverage value that exceeds the pixel's minimum subpixelluminosity/coverage value to the luminosity/alpha values beingcalculated for the subpixel and adjacent subpixel's in the current pixelrow using a color balance distribution filter, as is indicated in FIG.49.

[0656] In one embodiment of the invention, if the total of suchdistributions made to a given subpixel exceeds the maximum allowedluminosity/output value, the subpixel's luminosity/alpha value islimited to that maximum value. Although this clipping causes some colorimbalance, the inventors have found the resulting imbalances to behardly noticeable.

[0657] Once luminosity/alpha values have been calculated for eachsubpixel in the row and the loop 5302 has been completed, the loop 5322causes a function 5324 to be performed for each pixel in the row. Thisfunction sets the pixel color value equal to a color having a compoundRGB value with red, green, and blue component values corresponding tothe luminosity/alpha values calculated for the pixel's red, green, andblue sub pixels, respectively.

[0658]FIG. 54 illustrates an aspect of the present invention in whichthe user of a display device can dynamically make tradeoffs between theextent to which a subpixel-optimized image produced from a source imagesis produced by a multicolor subpixel optimization process or a bicolorsubpixel optimization process. An output image produced by themulticolor subpixel optimization can represent scaled down color imageswith reasonable color accuracy, whereas the bicolor subpixeloptimization in this example can produce only grayscale output images.But in some cases, such grayscale output images will have a moreaccurate spatial resolution and, particularly where the source image hasblack and white portions with sharp edges, less perceptible colorimbalance than an output image produced by the multi-color subpixeloptimization.

[0659] A Color bitmap image 5400 may be scaled and subpixel optimized byutilization of functions 5410 and 5430, which use a bicolorsubpixel-optimization method, such as one of those described above withregard to FIGS. 42 through 53, to produce a scaled andsubpixel-optimized grayscale bitmap 5440. Color bitmap image 5400 mayalso be scaled and subpixel optimized by a process 5420 that uses amulticolor subpixel-optimization method, such as one of those describedabove with regard to FIGS. 17 through 40, to produce a scaled andsubpixel-optimized color bitmap 5450.

[0660] According to an embodiment of the present invention shown in FIG.54, the user of the display device can manipulate a control apparatus ofthe display device, such as a pointing device, keyboard, or other inputdevice, according to process step 5460 in order to achieve a blend ofthe color bitmap 5450 and the grayscale bitmap 5440. The can be done,for example, by manipulation of a slide bar. Process step 5480 receivesthe grayscale bitmap 5440 and the color bitmap 5450 and the userselected color/grayscale tradeoff information and blends the colorvalues of the corresponding pixels from the grayscale and color bitmaps5440 and 5450, weighing color values from each as a function of the userselected color/grayscale tradeoff 5460.

[0661] In some embodiments of the type shown in FIG. 54, if the userselects a tradeoff value at either extreme of the color/grayscalespectrum, the process can reduce computation by only calculating thebitmap 5440 or 5450 that corresponds to that selected extreme.

[0662] A benefit of this aspect of the present invention is that theuser of a display device can favor color balance and/or positionalaccuracy when that is most important or color accuracy when that is mostimportant or simply vary the tradeoff selection to find a more easilyreadable display.

[0663] Not all aspects of the present invention requiresubpixel-optimized text, and many of those that do can use prior artmethods of creating subpixel-optimized bitmap's of font shapes. However,some aspects of the invention relate to innovations in methods of makingfont bitmaps.

[0664]FIGS. 55 through 97 relate to aspects of the invention relating tothe forming and using subpixel-optimized font bitmaps

[0665]FIG. 55 illustrates a font outline 5500, in this case an outlineof a capital letter “B” in a Times Roman font. The outline is shownsuperimposed over a subpixel grid 5502, which is composed of a pluralityof individual whole pixels 5504, each of which includes a red, blue, andgreen subpixel, 5506, 5508, and 5510, respectively.

[0666] The font outline shown in FIG. 55 is one that could be used fordisplay at relatively normal text sizes, indicating that the invention'smethod of subpixel optimizing character-font shapes is applicable acrossa broad range of applications and is not limited to small screendisplays of the type shown at the bottom of FIG. 11. However, when thisaspect of the invention is applied to small screen displays and/or thedisplay of font at very small pixel sizes, it is preferred that thefonts used be optimized for display at small sizes such as, in someembodiments, ten pixels per em or less, or eight pixels per em or less.

[0667]FIG. 56 illustrates a font that has been optimized for such smalldisplay on subpixel addressable screens. FIG. 57 shows the same bitmapat twice the size. Unfortunately the printouts of the bitmap shown inFIGS. 56 and 57 display the average luminosities of whole pixels andfail to capture the higher resolution made possible when such a bitmapis shown on a subpixel addressable display.

[0668] The font shown in FIGS. 56 and 57 have been produced by a hintingprocess that shifts selected boundaries of individual font outlines topixel boundaries, subpixel boundaries, and horizontal and verticaldimension's intermediary between subpixel boundaries. Such highresolution hinting is used in order to achieve optimum readability onsubpixel displays. It is done by having a font designer viewsubpixel-optimized bitmaps of individual characters with various hintingvalues until he or she feels relatively satisfied that the character isas clear as possible when display at such a small font size. As thoseknowledgeable of font hinting will understand, a font can have hintsthat dictate the alignment of individual portions of a font outlineacross all size renderings of that font, and special hints that areapplied for the character-font shape at certain pixel sizes. The fontshown in FIGS. 56 and 57 have been hinted to optimize their display ateight pixels per em, and some of them have specific hints that are to beapplied only at such small sizes.

[0669] In fact, most of the fonts in the 320 by 240 pixel resolutionscreen shots shown in the figures of this application are of 8 pixel perem fonts that have been specifically hinted for display at that size.These fonts allow a relatively large amount of web text to fit on asmall screen, while allowing a relatively high level of readability.These fonts allow the large majority of lower case characters to berepresented in four pixel columns or less, including space thatseparates adjacent characters, if any. These fonts allow a majority ofcapital characters to be represented in 5 pixel columns or less.

[0670] The readability of such small fonts is greatly increased by theuse of either subpixel optimization or anti-aliasing, because theyallows information about the extent to which a character shape covers agiven pixel to be represented at more than just a binary representationat the whole pixel level. In fact, subpixel optimization can beconsidered a type of anti-aliasing because it, like traditionalanti-aliasing causes pixels that are partially covered by a font shapeto have color values that vary as a function of the extent of suchcoverage.

[0671]FIGS. 58 and 59 illustrate that subpixel-optimized bitmapsproduced by the present invention can be represented as font outlinesand/or font bitmaps. The font outline descriptions 5802 contain amathematical geometric description of the shapes of one or morecharacters in a given font, preferably with hinting information designedto optimally place the boundaries of character outlines at one or moredifferent font sizes. These font outlines can be ones, such as thosejust discussed, that have been designed to be rendered optimally on asubpixel addressable display and/or have hinting that has been optimizedfor display on a subpixel addressable display.

[0672] A font renderer 5806 can be used to create a subpixel-optimizedbitmap 5804 from such outlines, as is described below.

[0673] In some embodiments of the invention, illustrated in FIG. 58, acomputer 5808 and/or an application running on that computer displaystext using font bitmaps or font outlines accessed over a computernetwork 5814 from a font server 5812. In other embodiments, illustratedin FIG. 59, a computer 5900 and/or an application 5902 running on ithave font bitmaps 5804 necessary to render text stored within them. Suchcomputers and/or applications can store only font bitmaps, or they canstore scalable font outlines 5802 and render font bitmaps 5804 as neededat different sizes.

[0674] The advantage of storing only font bitmaps is that it preventsthe need to store font outlines and a font renderer on the computer5900. It also prevents the need for the computation involved in fontrendering. Furthermore, many font vendors are much more willing to allowfont bitmaps to be relatively freely available over the Internet thenthey are font outlines.

[0675] The advantage of storing font outlines is that if one isinterested in rendering fonts at a large variety of sizes, it isactually more efficient to store the code necessary for the fontrenderer and to store scalable font outline descriptions than it is tostore font bitmaps for all the different size characters.

[0676] The advantage of receiving fonts from a font server as shown inFIG. 58 is that it allows a client computer 5808, such as thatrepresented in FIG. 58, to represent text in any one of a large numberof different font, size, and character combinations by downloading suchfonts as needed, without the need to store a large library of fonts.Preferably the client computer 5808 will cache a reasonable number ofcharacter-font bitmaps so that there is no need to communicate over thenetwork 5814 every time it seeks to display a string.

[0677]FIG. 60 is a highly simplified pseudocode description of analgorithm 6000 used by some embodiments of the aspect of the inventionrelating to producing a subpixel-optimized font bitmaps. This algorithmuses nonlinear color balancing of the type described above with regardto FIGS. 48 and 49. Such a subpixel optimization algorithm isparticularly optimal for use in the display of text characters, becausethe alignment of text outline boundaries with whole pixel boundaries isquite common in rasterized font shapes because of the use of hinting.

[0678] The algorithm 6000 of FIG. 60 includes a loop 6002 that isperformed for each pixel row in the rasterization of an individualcharacter-font shape at a given pixel resolution. This loop 6002 iscomprised of three subloop's 6004, 6008, and 6020, which aresequentially performed for each pixel row.

[0679] The loop 6004 is performed for each subpixel in the pixel row forwhich the current iteration of the loop 6002 is being performed. Foreach such subpixel, the loop 6004 performs a function 6006, whichdetermines the foreground color coverage value for each such subpixel asa function of the percent of the subpixel's area covered by thecharacter-font shape of which an image is being made.

[0680]FIGS. 61 through 90 are used to discuss methods that can be usedto determine the coverage value of each subpixel in step 6006 of FIG.60.

[0681] As is indicated in FIG. 61, 62, and 63 the area in the image ofthe character-font shape for which such a coverage value is calculatedfor a given pixel 5504 corresponds to the area of the image that will bedisplayed by each red, green, and blue subpixel 5506, 5508, and 5510,respectively. This is different than in the case of subpixel-optimizedmulticolor images, in which the source image window corresponding toeach subpixel is larger, as is indicated in FIGS. 14 through 16 above.The source image window used by the method of FIG. 60 has the same sizesas the area of the source image window used for bicolor bitmapsdescribed above regard to FIGS. 42 through 44.

[0682] Such a higher resolution source image window can be used becausethe character-font shapes described by most font outline descriptionsare bicolor images, with the area covered by the font outline consideredas being associated with a foreground color (in most cases, representedby an alpha value of one) and all other portions of the image beingassociated with a background color (in most cases, represented by analpha value of zero).

[0683] The calculation of the coverage values in function 6006 of FIG.60 can be performed using any prior art technique capable of rasterizinga character font outline relative to an array of pixels having the samespatial resolution as the subpixel's of the grid 5502 shown in FIG. 55.

[0684]FIGS. 64 through 67 illustrate some of the traditional methodsthat have been used to calculate the percentage of a unit in arasterization grid that is covered by a font outline 6402. In the priorart, the unit of rasterization 6400 has typically been an areacorresponding to a whole pixel in the output image. In the method ofFIG. 60 it is an area corresponding to a subpixel in the output image.

[0685]FIG. 64 illustrates one method of determining the coverage of arasterization unit 6400 that uses mathematical techniques to exactlycalculate the area of the unit that is covered by the outline 6402. Thisis relatively computationally expensive, and thus is hardly ever used.

[0686] A substantially more computationally efficient method is shown inFIG. 65, which calculates the percentage of the rasterization unit 6400that is covered by the outline 6402 by using piecewise linearapproximations 6504 of the boundary of the character-font shape.

[0687]FIG. 66 illustrates an even more computationally efficient manner,although it produces a substantially less accurate results. This methoddetermines the percent of coverage of the rasterization unit 6400 bydetermining what percent of a set of sample points 6600 fall inside theshape of the outline 6402.

[0688]FIG. 67 illustrates a method of determining coverage values thatprovides more accurate results for the same, relatively low degree ofcomputation as the method of FIG. 66. It determines the coverage of therasterization unit as a function of the average percentage of each of anumber of scan lines 6700 and 6702 that are covered by the outline 6402.

[0689]FIGS. 68 through 87 illustrate an extremely computationallyefficient method of calculating the coverage of a rasterization unit,which yields results that are typically better than a sampling methodsuch as that shown in FIG. 66 for the same amount of computation.

[0690] An embodiment of this method is described in much more detail ina U.S. patent application filed in the name of one of the inventors ofthe present application, Sampo J. Kaasila. This U.S. patent applicationhas the Ser. No. 09/363,513. It was filed on Jul. 29, 1999, and isentitled “Systems For Rapidly Performing Scan Conversion WithAnti-Aliasing Upon Outline Fonts And Other Graphic Elements”. Thisapplication issued as U.S. Pat. No. 6,437,793 on Aug. 20, 2002. Thisapplication also has had its disclosure published in PCT applicationPCT/US00/21559. This application and the patent that has issued from itart incorporated herein by reference in their entirety.

[0691] In the method of FIGS. 68 through 87, the coverage value for arasterization unit is determined by that percentage of one of its twoscan lines, a horizontal scan line 6804 or a vertical scan line 6802,that is covered by a font outline's shape 6402. The scan line whosecoverage value is used as the coverage value for the rasterization unitis that which has the more intermediate coverage value. For example, inan embodiment where the coverage for the horizontal and vertical scanlines is calculated in a range of values from 0 to 126, the scan linechosen is that whose value is closest to 63, which represents a 50percent coverage.

[0692] In FIGS. 68 through 71 it is the percentage of coverage of thevertical scan line 6802 that is used to represent the percentage ofcoverage of the rasterization unit 6400. In FIGS. 72 through 75 it isthe horizontal scan line 6804 that has the most intermediate values,and, thus, which has its percentage of coverage used to represent thepercentage of actual coverage of the entire rasterization unit.

[0693] In all the rest of the FIGS. 76 through 87 it can be seen thatthe coverage value of the scan line with the more intermediariescoverage value normally is very close to the actual coverage value forthe entire rasterization unit, and that it normally never varies fromthe actual coverage value of the entire rasterization unit by more than25 percent.

[0694]FIGS. 88 through 90 represents other combinations of scan linesthat can be used according to a method that weighs the contribution ofthe coverage values of individual scan lines to the estimated coveragevalue of their associated rasterization unit as a function of which ofthose line coverage values have more intermediate coverage values. Insuch methods the coverage value calculated for entire rasterization unitcan be set equal to the sum of the coverage value of each scan linetimes its mediality, all divided by the sum of each scans line'smediality. In this calculation, a scan line's mediality equals the scanline's middlemost percentage coverage value minus the absolute value ofthe difference between that middlemost percentage coverage value and thescan line's actual percentage coverage value.

[0695]FIG. 91 illustrates a hypothetical font outline 9102 mapped overthe red, green, and blue subpixels 5506, 5508, and 5510, respectively,of a row 9100 of pixels 5504.

[0696]FIG. 92 illustrates the corresponding coverage values 9202 thathave been calculated for each of the subpixels in the row 9100.

[0697]FIG. 93 illustrates how the coverage values determined for anindividual subpixel can be distributed using a linear color balancemethod. This linear color balancing is identical to that described abovewith regard FIG. 46.

[0698] Returning briefly now to FIG. 60, once step 6006 of that figurehas calculated or estimated the coverage value for each subpixel of arow, as indicated in FIG. 92, a loop 6008 is performed for each pixel inthe row. This loop color balances the coverage values calculated for thesubpixels of a row. It does not use a linear color balancing routine ofthe type illustrated in FIG. 93 and described above with regard to FIGS.46 and 47. Instead it achieves higher perceivable spatial resolution byusing a non-linear color balancing technique similar to that describedabove with regard to FIGS. 48 through 53.

[0699] The loop 6008 performs two functions, 6010 and 6012, and a loop6014 for each such pixel.

[0700] The function 6010 finds that subpixel of the current pixel thathas the minimum coverage value calculated for its subpixel. Then step6012 adds this minimum coverage value to the temporary alpha, oropacity, value being calculated for each subpixel of the current pixel.This corresponds to the function described above with regard to FIG. 48.

[0701] Then a loop 6014 performs function 6016 and 6018 for eachsubpixel of the current pixel. The function 6016 determines, for thecurrent subpixel of the loop 6014, the excess of the coverage value thathas been calculated for it over the minimum coverage value that has beenfound for the pixel of which the current subpixel is part. Then function6018 distributes this excess value across the subpixel alpha valuesbeing calculated for the current subpixel and the two subpixels to itsleft, and the two subpixels to its right in the current pixel row. Thisfunction corresponds to that described above with regard to FIG. 49.

[0702]FIGS. 94 and 95 illustrate two different color balancedistribution filters that are used in one embodiment of the presentinvention. In this embodiment a symmetrical center-weightedcolor-balance filter shown in FIG. 94 is used to distribute the coveragevalues associated with the red and green subpixels. The asymmetricalcolor-balance filter shown in FIG. 95 is used to distribute coveragevalues associated with blue subpixels. Thus, this embodiment of theinvention differs from the process described above with regard to FIG.49 in that it used differently shaped distribution filters for somecolors than for others.

[0703] One of the inventors of the present application has found thatbecause the eye perceives green much more strongly that it does blue,that color balancing coverage values associated with differently coloredsubpixels should use such different distribution filters. In otherembodiments of the invention relating to non-linear color balancing(including the non-linear color balancing of bicolor images) a differentcolor balancing filter could be used for each different color, the samecolor balance filter could be used for all colors, and eithersymmetrical or asymmetrical color balancing filters can be used.

[0704] The particular color-balancing filters shown in FIGS. 94 and 95are designed for use with coverage values that are calculated on a scalefrom 0 to 126. A given coverage value having a value from 0 to 126 isassociated with one of the set of five distribution values on the righthand side of the tables of FIGS. 94 and 95 whose associated color valueon the left side of that table is closest to its own color value. Forexample, if the coverage value of the current subpixel was 126 for thecolors red or green, an addition of 1 would be made to the alpha valuebeing calculated for subpixels two to the left and two to the right ofthe current subpixel, an addition of 3 would be made to the alpha valuesbeing calculated for the subpixels one to the left and one to the rightof the current subpixel, and a value of 4 would be added to the alphavalue being calculated for the current subpixel. In this particularembodiment the alpha values are calculated on a scale from 0 to 12.

[0705] The relative size of the color balance distribution shown in thelast row of FIGS. 94 and 95 reflect more accurately the desireddistribution ratios. This is because the larger value distributed ineach of these last rows allows greater numerical resolution than isfound in the rows above each of them.

[0706] It should be appreciated that in other embodiments that usehigher numerical accuracy to describe the coverage or luminance valuesbeing balanced, the balancing distributions would have ratios betweenthe contributions to different subpixels more like those reflected inthese last rows of FIG. 94 and/or FIG. 95. This is particularly truewhen filters of the general type shown in FIG. 94 and/or FIG. 95 areused in the color balancing of bicolor subpixel optimizations of images,such as is described above with regard to FIGS. 48 through 52. This isbecause, in such bicolor subpixel optimizations of bitmap images, thereis more reason to compute the luminance to be color balanced at aresolution corresponding to that used in the bitmap being subixeloptimized.

[0707] Once loop 6008 of FIG. 60 has caused step 6018 to be performedfor each subpixel of each pixel in a row, each pixel will have aseparate alpha value calculated for each of its three subpixels, witheach such alpha value having one of thirteen opacity levels. This meansit is possible for each pixel to have 1 of 2,197 (i.e., 133) differentpossible combined alpha values. In other embodiments of the inventionalpha values with higher or lower resolution can be used.

[0708] In many embodiments of the invention, particularly those designedto run on computers with limited computational capacity or in systems inwhich it is desirable to reduce the bandwidth or storage capacityrequired to store or download font bitmaps, it is desirable to map fromthe relatively large color space of the 2,197 combination of differentsubpixel alpha values possible after such color balancing into a smallercolor space.

[0709] The embodiment of the invention in FIG. 60 performs such amapping. Once the loop 6008 has been performed for each pixel in thecurrent row, a loop 6020 performs an additional function 6022 for eachsuch pixel. The function 6022 takes the three alpha values that havebeen calculated for each of a pixel's subpixels and uses them as aninput value of a lookup table that maps from each of the 2,197 possiblecolor value defined by the possible combination of a pixel's three alphavalues into 1 of 122 values. In this embodiment the color space has beenreduced down to such a small number of colors so that a machine that hasa 256 value color space will be able to display each of the 122 valuesselected for use in the display of subpixel optimize fonts while stillhaving over half of such a limited color space for other uses. The usesof such a small color palette to represent font bitmaps reduces thenumber of bits required to store such font bitmaps and makes them moreefficient to download. In other embodiments of this aspect of theinvention the source and the destination color spaces used in such amapping could have different sizes.

[0710]FIG. 96 illustrates the method 9600 that has been used to createsuch a color mapping in one embodiment of the preferred invention. It isto be understood that in other embodiments, other types of mapping couldbe used. In some embodiments no such mapping into a smaller color spaceneed be used at all.

[0711] The method of FIG. 96 starts with a step 9602 that runs multiplecharacters from multiple fonts through the nonlinear color-balancedsubpixel optimization algorithm described above with regard to FIGS. 60through 95. When this is done, a histogram is kept of the number oftimes each of the possible 2,196 different composite pixel alpha valuesis calculated for any of the pixels. This histogram is useful becausemost of the three-colored alpha values calculated for pixels insubpixel-optimized font bitmaps tend to be concentrated into varioussmall regions of the total possible color space of 2,196 suchthree-color alpha values. This concentration is probably even morepronounced with non-linear color balancing, because it substantiallyreduces the amount luminosity distributions due to color balancing.

[0712] Next a function 9604 creates a limited color palette, in thiscase having 122 colors, by performing the functions 9606 and 9608. Thefunction 9606 selects, as part of the palette, the thirteen grayscalevalues that are possible for whole pixel alpha values, given that eachsubpixel can have one of thirteen alpha levels. Then the function 9608selects the 109 other most frequently occurring colors in the histogrampreviously calculated by step 9602.

[0713] Once the limited color palette has been selected, a loop 9610 isperformed for each of the 2,196 possible whole pixel alpha values. Foreach such possible alpha value a conditional 9612 tests to see if thatinput color exactly matches one of the 122 colors. If so, the function9614 associates the input color with its identical output color in thelookup table being constructed. If the condition 9612 is not met, a loop9618 and a function 9628 will be performed for the current input colorof loop 9610.

[0714] The loop 9618 is performed for each of the 122 output colors inthe palette. It has a conditional 9620, which tests to see if thedifference between the red alpha value of the input color to be mappedand the current output color of the loop 9618 is of the same sign as thedifference between the green alpha value of the current input color andthe green output alpha value for the current output color. Theconditional 9620 also tests to see if the difference between the redalpha value and the green alpha value of the current output color isless than the difference between the red alpha value and the green alphavalue of the input color (plus a possible value X to allow some leeway).If these two conditions, which are designed to prevent relativelynoticeable differences between an input color and the output color towhich it is to be mapped, are met, functions 9622 through 9626 will beperformed.

[0715] Function 9622 calculates the distance from the input color to theoutput color. Function 9624 tests to see if that distance is the closestdistance so far to the input color in the current loop 9618. If the testof function 9624 is met, step 9626 saves the current output color of theloop 9618 as the closest allowed palette color. After the loop 9618 hasbeen performed for each of the 122 output colors of the limited palette,step 9628 associates the current input color of the loop 9610 with theclosest allowed palette color calculated in the loop 9618.

[0716] Once the loop 9610 has been performed for each of the possibleinput colors, each of those input colors will have been mapped to one ofthe 122 output colors.

[0717] In the particular color mapping scheme shown in FIG. 96 non-greyscale pixel color values produced by color balancing get mapped in togreyscale color values if they do not get mapped into one of the onehundred and nine most frequently occurring non-greyscale color valuesselected by step 9608. This generally yields results at least as good astraditional anti-aliasing, which represents all bitmaps with a greyscalealpha value.

[0718]FIG. 97 illustrates an algorithm 9700 used to display font bitmapsof a type generated by the methods of FIGS. 60 and 96 on a subpixeladdressable screen.

[0719] The loop 9702, comprised of the function 9704 and loops 9706 and9714, is performed for each string to be displayed.

[0720] Function 9704 samples a set of points in the rectangle of thebitmap at which the string is to be drawn, to determine the averagebackground color value for the string. In other embodiments thebackground color is separately determined for each character or for eachpixel of each character, but in the embodiment shown, the backgroundcolor is determined only once for each string to save computation.

[0721] Once the background color for the string has been determined,loop 9706 performs a subloop 9708 and a function 9712 for each of the122 whole pixel alpha values, described above with regard to FIG. 96.

[0722] The loop 9708 performs a function 9710 for each of the threesubpixel colors. The function 9710 calculates the luminosity value forthe current subpixel color as a function of the components of thecurrent whole pixel alpha value corresponding to the current subpixelcolor. It sets the luminosity value it is calculating equal to thissubpixel alpha value multiplied by the luminosity of the currentsubpixel's corresponding color in the foreground color of the string tobe drawn, plus a quantity of one minus the current subpixel's alphavalue multiplied by the luminosity of the current subpixel'scorresponding color in the background color determined by function 9704.

[0723] Once this loop has been performed for each of the three subpixelcolors, function 9712 maps the current whole pixel alpha value of theloop 9706 into the whole pixel color value comprised of the threesubpixel luminosities that have just been calculated in the loop 9708.

[0724] Then the loop 9714 performs the function 9716 and the loop 9718for each of the characters of the current string to be displayed on asubpixel addressable display.

[0725] Function 9716 accesses the font bitmaps for the currentcharacter. Then the loop 9718 performs functions 9720 and 9722 for eachpixel of that bitmap. Function 9720 finds the color value that has beenmapped by the loop 9706 into the current whole pixel alpha valueindicated for the current pixel in the character's font bitmap. Oncethis color value has been found, function 9722 sets the correspondingpixel in the subpixel addressable display to the that whole pixel colorvalue.

[0726] Once the loop 9718 has been performed for each pixel of eachcharacter of the string, the string will have been completely displayedin a subpixel optimize manner.

[0727]FIGS. 98 through 101 are used to illustrate how well thetechniques for image and font scaling and subpixel optimization work.FIGS. 98 and 100 illustrate views of two different web pages laid outand displayed at 640 by 480 pixels using a common browser program. FIGS.99 and 101 illustrate the same web pages after their images and texthave been scaled by the method described above so as to fit on a 320 by240 display. Unfortunately, the 320 by 240 pixel images are printed withgrayscale values determined by the average luminosity of its wholepixels, and thus the actual clarity added by subpixel resolution is notshown in these images.

[0728]FIGS. 102 through 113 illustrate in more detail the interactionbetween a proxy server and a thin client computer in one embodiment ofthe present invention.

[0729]FIG. 102 is a highly schematic box diagram of a system including aproxy server 210 and a thin client 200 of the type described above inregard to FIG. 2.

[0730] The proxy server 210 includes a browser 10200 that includesprogramming 10202 to perform the standard functions of a full Webbrowser. This programming has been modified because the browser operatesas a proxy for the thin client. When the browser receives over thenetwork an HTML description 10204 of a requested web page, it creates atwo dimensional layout 10206 of that web page.

[0731]FIG. 103 illustrates a portion of HTML description of the web pagewhose display is shown in FIGS. 98 and 99. The numerals 10300 shown inFIG. 103 illustrates portions of text in the HTML that are shown in theleft-hand column of the web page shown in FIGS. 98 and 99. The numeral10302 points to an image tag that identifies the bitmap used torepresent the word “Sections” shown in the same column.

[0732] When the proxy browser code receives the download of the webpage, it attempts to create a layout 10206 of that web page at a virtualscreen resolution, which corresponds to the size of the window intowhich it thinks it is displaying all or a portion of the web page. Wecall this window into which the browser thinks it is displaying the webpage the virtual screen 10208.

[0733]FIG. 104 illustrates the layout 10206 of the web page shown inFIGS. 98 and 99, and it shows in heavy black rectangle 10208 the mappingof the virtual screen into that layout. 10220 shows the actual screenimage that is displayed on the thin client given the location of thevirtual screen shown in FIG. 104.

[0734] Many web pages today include elements larger than the 640 by 480virtual screen resolution used in the example system being described.The layout will have the minimum width required to layout the objects ofthe web page, or the width of the virtual screen, which ever is larger.For example, it is common today for many web pages to be laid out with aminimum possible resolution of 800 pixels. In this case the virtualscreen will have a smaller width than the layout. This is the case inthe example shown in FIG. 104.

[0735] The view window 10210 shown in FIG. 102 represents that portionof the virtual screen that is to be actually displayed upon the screenof the thin client. In views shown in FIGS. 99 and 101 the view windowequals the virtual screen. But as the user zooms in on a portion of thevirtual screen, the zoom's scale factor control 10216 will change andthe view window will be mapped into a subset of the virtual screen.

[0736] Scroll control 10218, shown in FIG. 102, causes the view windowto move relative to the layout. If the view window is moved so that itincludes a portion of the layout that is not on the virtual screen, acommand will be sent to the browser software to scroll the virtualscreen.

[0737] The event queue 10220 stores events, that is, user input, whichhave been received on the thin client and which have been uploaded tothe proxy server for corresponding action by the browser. Events thatoccur on the screen of the thin client are mapped through the viewwindow to the corresponding locations on the virtual screen and thenplaced in the event queue of the proxy browser, so that the proxybrowser will respond to such input as if it had been received at theappropriate location on the screen (i.e., the virtual screen) that itthinks it is drawing directly onto a video output device.

[0738] The browser programming 10202 of FIG. 102 has been modified sothat each time it thinks it is drawing an object on the virtual screenit creates a corresponding scaled-down object at a correspondinglyscaled location in a download display list 10212.

[0739] This display list is downloaded over the network 10222 to theclient computer, which stores it as is indicated by the numeral 10212A.The scaled down images referred to by this display list 10214 are alsodownloaded. Programming 10218 located on the thin client displays thestrings, images, and other elements contained in the display list on thethin client screen 10221. If the user clicks on the thin client screen,the operating system 10222 of the thin client places such a click andits location on the thin client's screen in an event queue 10224. Eachsuch event that does not relate to programming handled locally on thethin client is uploaded to the event queue 10220 of the proxy server, asdescribed above.

[0740]FIGS. 105A through 110 are highly simplified pseudocodedescriptions of programming and data structures on the browser and thinclient computers designed to control their interaction for the purposeof allowing the thin client to browse web pages through the proxy.

[0741]FIGS. 105A and 105B are highly simplified pseudocoderepresentations of portions the browser's code 10202 shown in FIG. 102used to help it function as a proxy browser for the thin client.

[0742] In the particular embodiment illustrated in these figures, alarge Web browser designed for normal use has been patched so as to makeit perform as a proxy. It is to be understood that in other embodimentsof this aspect of the invention the functionality necessary to make thebrowser operate as a proxy could be more intimately and elegantlyintegrated into the browser's code. In yet other embodiments, code inthe operating system, or in functions that intercept operating systemcalls can be used to make a standard Web browsing program operate as aproxy for a thin client.

[0743] In the embodiment shown in FIG. 105A, if the proxy's browserreceives a request from the thin client for a web page, steps 10502 and10504 relay that request to the server computer indicated in the URL ofthe request.

[0744] If the browser receives an indication from its own code that thebrowser has completed a draw or redraw of the virtual screen 10208described above with regard FIG. 102, functions 10506 and 10510 willcall the screen capture and download routine shown in FIGS. 106A and106C.

[0745]FIGS. 106A through 106C are highly simplified pseudocodedescriptions of the screen capture and download routine 10600.

[0746] When this routine is called by function 10510, just described,its step 10602 asks the browser for a screen redraw, which causes thebrowser to call routines to draw each of the elements in the web pageslayout that all or partially fit within the virtual screen. The routineof FIGS. 106A through 106B records information contained in each ofthese draw calls and uses it to create the download display list 10212shown in FIG. 102.

[0747] If the browser calls a measure string routine 10606 of FIG. 106A,this routine causes functions 10608 through 10618 to be performed. Suchcalls are made by the browser to determine the size of text it isseeking to layout into the virtual screen. Although not shown in thefigures, these same functions 10608 and 10610 are performed anytime thebrowser makes a call to measure string size, even if it is not duringthe operation of the screen capture and download routine shown in FIGS.106A through 106B.

[0748] Function 10608 maps the font specified in the measure string callinto a font having a different font family and a different font size.This font substitution is controlled by three considerations indicatedby numerals 10608 through 10616.

[0749] Consideration 10608 seeks to select a size for the substitutefont as a function of the requested font size in the call to the measurestring routine and as a function of the display scale factor.

[0750] The display scale factor is a ratio of the resolution along agiven dimension of the portion of the virtual screen 1028 correspondingto the view window and the resolution, along the same dimension, atwhich the view window will be displayed on the thin client. In somecases the display scale factor will have different components torepresent different scaling ratios to be used along the horizontal andvertical directions, but in many cases the display scale factor will becomprised of a single scaling ratio to be used for both horizontal andvertical resolution.

[0751] In the embodiment shown in FIG. 102, this scale factor is storedin the Zoom/Scale Factor Control 10216. In cases where the virtualscreen has a resolution of 640 by 480, the view window equals the sizeof the virtual screen, and the view window is displayed on all of a 320by 240 display, the display scale factor will be two, meaning thatelements are to be drawn on the screen of the thin client at ½ the pixelresolution at which the browser thinks it is drawing them upon itsvirtual screen.

[0752] Consideration 10612 replaces all font sizes that will be smallwhen displayed on the thin client screen with font families that arenarrower and taller than the average pixel size of the font that wouldbe selected by the consideration 10610 alone. When reducing from a640×480 virtual screen to a 320×240 display screen this can include mostor all web page text represented in characters, as opposed to bitmap,form. This substitution is done because the subpixel addressabledisplays used with this embodiment of the invention have three times thesubpixel resolution in the horizontal direction as they do in thevertical direction. Because of this, decreasing the width of charactershas a less negative impact on readability than decreasing the theirheight. Thus, to display the maximum amount of relatively easilyreadable text on such a subpixel addressable display screen, thissubstitution caused the width of characters to effectively be scaleddown by more than the display scale factor and the height of suchcharacters to effectively be scaled down by less than the display scalefactor. For example, the fonts of the small screen displays shown inFIGS. 56, 57, and 99, 101, 168, 169, 172, 173, and 174 have all beensubstituted by fonts that have been scaled in such a manner.

[0753] The fonts in these figures have a pixel size of eight pixel perem. A majority of the lower case letters in this font fit within anadvance width of four pixel columns of less. This width of four pixelcolumns or less includes the spacing, if any, that occurs between theshapes of characters having such widths. In these particular fonts, overeighty-percent the lower case characters of the roman alphabet fitwithin such an advance width These characters have an x-height of morethan four pixel rows, which makes them generally considerably tallerthan they are wide. As a general rule, such a relatively narrow font canrepresent a larger amount of text within a given area at a given levelof readability than a wider font.

[0754] The consideration represented by the numerals 10614 and 10616tests to see if a flag has been set to limit minimum font size,indicating that no fonts should be shown on the thin client's displaybelow a certain pixel size. Commonly this flag will be set to preventthe display of text that is too small to read. It can be unset when theuser desires to see a more accurate scaled-down representation of howthe web page text would normally be laid out if actually shown on adisplay having the virtual screen size. Such a desire is particularlylikely when the display scale factor is large, meaning that placing sucha minimum limit on text size would drastically alter the appearance ofthe web page's layout.

[0755] If, as is often the case, the system is limiting minimum fontsize, then steps 10614 and 10616 prevent the substitute font size frombeing below a minimum pixel size. In a current embodiment of theinvention, this minimum pixel size is eight pixels per em. Thedevelopers of this embodiment developed hinted fonts for subpixeldisplay at seven pixel per em, and although they found such fontsrelatively easy to read, they received feedback from other users thatsuch small fonts were too difficult to read.

[0756] The limitation on minimum font size often substantially changesthe relative size at which a web page's variously sized fonts areactually displayed.

[0757] In some embodiments of the invention, all Web text is displayedat one font size. This actually works quite well for most web pages,because in most web pages the truly large fonts are represented bybitmaps.

[0758] Once the function 10608 has determined which font family and fontsize should be substituted for the font with which the measure stringroutine has been called, function 10618 returns the string measurementof the string with which the routine was called, given the size of thestring's characters in the substituted font and font size, after thatmeasurement has been scaled up by the display scale factor.

[0759] The return of this value causes the browser's layout engine tolay out the web page using font metrics for characters that are scaledup, relative to the pixel size at which those characters will actuallybe displays by the display scale factor, which is the ratio of theresolution of the portion of the virtual screen corresponding to theview window and the actual resolution at which the view window will bedisplayed on the thin client screen. This means that the virtual screenis being laid out using virtual font metrics that are different than theactual font metrics that will be displayed as a result of that layout.

[0760] If the screen capture and download routine receives a call to astring draw routine 10620, this routine causes functions 10621 and 10624to be performed.

[0761] Function 10621 transforms the screen position at which the stringis to start being drawn into the corresponding position on the thinclient screen at which the string will ultimately be displayed. Thistransformation takes into account the mapping between the view window10210 and the virtual screen 10208 illustrated in FIG. 102. This mappingreflects both the current zoom setting stored by the control 10216 and acurrent scroll setting stored by the scroll control 10218 also shown inFIG. 102.

[0762] Function 10622 tests to see if the substituted font family andsize associated with the string by the prior call to the measure stringroutine, described above with regard to numerals 10606 through 10618,and any other font attributes requested for the display of the currentstring, are different than the current values for such font attributes.The current value for each such font attribute is defined by the lastvalue for each such attribute defined by a font commands alreadyrecorded in the download display list. If such differences are found,function 10623 stores a font command at the current end of the displaylist changing any such font attributes to those appropriate for thedisplay of the current string.

[0763] Function 10624 stores the string with which the string drawroutine has been called and the transformed screen position justcalculated by step 10622 at the end of the download display list 10212,illustrated in FIG. 102. As described below with regard FIG. 108, thisis done by placing a string command in the display list containing thestring's transformed start position and its characters

[0764] If the screen capture and download routine receives a call to arectangle draw routine 10626, this routine causes functions 10628through 10634 to be performed. Rectangle draw commands are commonlycalled by browsers to create areas of a web page with differentbackground color, as well as to draw horizontal and vertical lines thatcan be used as underlining for text or demarcations between differentportions of the web page's layout.

[0765] Function 10628 transforms the geometric values contained in thecall to the corresponding geometric values with which a correspondingrectangle will be drawn on the thin client's display. This includestransforming the rectangle's start screen position, and its width andits height.

[0766] Function 10630 tests to see if the rectangle's color is differentthan the current (i.e., last) rectangle color in the display list. Ifso, function 10632 adds a background color command to the end of thedisplay list changing the current background color to the colorspecified in the current call to the rectangle draw routine.

[0767] Next function 10634 stores the rectangle and its transformedscreen position, width, and height at the end of the download displaylist with a rectangle command.

[0768] If the screen capture and download routine receives a call to abitmap draw routine 10636 shown in FIG. 106B, this routine causesfunctions 10638 through 10670 to be performed. Bitmap draw routines arecalled by browsers to display pictures, pictures of fonts, banner ads,and images associated with hot zones and other graphical user interfacebitmaps of a page.

[0769] In some embodiments, only the first screen of given animationsare captured and recorded to the download display list to reduce theamount of bandwidth required to display web pages. In other embodiments,particularly those with higher bandwidth links such a restriction neednot apply In the embodiment of the invention that is described withregard to FIGS. 106A through 160C, bitmap draws associated with certaingraphical user interface's are ignored because the thin client'sprogramming stores subpixel-optimized, scaled-down bitmaps for suchcontrols.

[0770] Step 10638 tests to see if the URL of the image for which thebitmap draw routine has been called is already in a download image list,not shown in the figures, which contains each of the images referred toin the download display list. If not, the requested bitmap has not yetbeen processed for the current download and functions 10642 through10662 need to be performed for it.

[0771] Function 10642 tests to see if the bitmap is a color bitmap. Ifso it causes functions 10644 through 10654 to be performed. Function10644 scans the color images for one or more individual areas ofsufficient size to justify separate treatment, which each contain onlycolors from a single bicolor spectrum. A bicolor spectrum corresponds toa set of colors that lie in a line in an RGB color cube (i.e. a colorcube defined by red, green, and blue value ranges in each of its threemajor dimensions).

[0772] For each bicolor portion of the image found that is large enoughto justify individual processing, function 10646 causes functions 10648and 10650 to be performed. Function 10648 performs a bicolor subpixeloptimization, of the type described above with regard to FIGS. 42through 53, on the current portion of the image using the most extremeends of its bicolor spectrum as its foreground and background colors,and using the current display scale factor to determine the extent towhich it scales down that portion of the image. This subpixeloptimization, like that performed in steps 10654 and 10658 described inthe next few paragraphs, scales down the image by the display scalefactor, which is the ratio between the resolution of the image in thevirtual layout of the proxy browser and the resolution at which it willbe displayed on the thin client's screen.

[0773] After this subpixel optimization has been performed, function10650 determines if the foreground color is too chromaticallyunbalanced. That is, it is to close to a pure red, green, or blue color.If this is the case, such color purity would decrease the accuracy withwhich it can display the spatial resolution of the color image. If thisis the case, the foreground color can be replaced by a correspondingcolor that is closer to a grayscale value, and thus that will allow moreaccurate spatial representation.

[0774] In some embodiments of the invention such foreground colorsubstitution will not be used because it might upset the color balanceof the color image. In general it is best not to use such foregroundcolor substitution unless the foreground color appears throughout asubstantial portion of the entire color image. In other embodiments ofthe invention the background color associated with a bicolor image couldbe changed. But the Changing of the background colors of images on webpages is often unadvisable.

[0775] For each non-bicolored portion of the current image, function10652 causes step 10654 to perform a multicolored subpixel optimization,of the type described above with regard to FIGS. 14 through 41, on thatportion of the bitmap at the current display factor.

[0776] If the bitmap for which the bitmap draw routine has been calledis a grayscale bitmap, function 10656 causes step 10658 to perform abicolor subpixel optimization, of the type described above with regardto FIGS. 42 through 53, on the bitmap using black and white as theforeground and background colors at the current display scale factor.

[0777] Then function 10662 stores the scaled-down, subpixel-optimizedbitmap at the end of the image list with a unique image ID, its URL, andits scaled width and height.

[0778] Whether or not the image with which the bitmap draw routine hasbeen called was previously in the image list, by the time the programadvances to function 10664 it will be in that list, and will have beenassigned an ID number and a transformed width and height. At this timefunction 10664 transforms the screen position with which the bitmap drawroutine has been called for the image to one applicable to the thinclient's screen, and then stores an image location command of the typeshown in FIG. 108 having the image's image ID, its transformed screenposition, and its transformed width and height at the end of thedownload display list.

[0779] In some embodiments of the invention all bitmap images aresubpixel-optimized using the multicolor subpixel optimization routine.In other embodiments only grayscale bitmaps undergo any bicolor subpixeloptimization.

[0780] In some embodiments of the invention vector images can be handledby performing subpixel optimization upon the shapes defined by suchvector descriptions. In some such embodiments such subpixel optimizationis performed on the proxy, but in others it is performed on the thinclient. One of the advantages of vector, or geometrically defined,drawings is the compactness with which their descriptions can representan image. Thus when bandwidth to the thin client is a primaryrestriction, it might well make sense to download vector descriptions ofimages and have the thin client then render them using subpixeloptimization.

[0781] It is possible in some embodiments, to have image recognitionperformed upon images, and then have the recognized images downloaded tothe thin client in a symbolic representation. For example, it is commonin many web pages to represent large text with bitmaps. Opticalcharacter recognition could be performed on such bitmaps, andcorresponding characters and their font, or an approximation of theirfont could be downloaded symbolically, so as to reduce the bandwidthrequired in order to describe the page to the thin client.

[0782] If the screen capture and download routine receives a call to theroutine to create a control object, such as a radio button, check box,text field, or button from the browser, the controlCreate routine 10666shown in FIG. 106C causes functions 10667 through 10670 to be performed.Function 10667 transforms the screen position at which the browser hasrequested a control to be drawn to the location at which it is to bedrawn in the thin client's screen. A function 6668 places acorresponding control create command as indicated in FIG. 108 in thedownload display list, including its corresponding text label, andfunction 10670 creates a corresponding browser-side portion of thecontrol object.

[0783] In this embodiment of the invention the functionality of acontrol object shown in the thin client's screen is shared between theproxy and the thin client. State information, such as whether not acheck box is checked, or which of a set of radio buttons has beenpushed, is stored on the thin client. This prevents the need forcommunication from the thin client to the proxy every time the userenters information into such a control object. Usually it is only whenthe user clicks a button indicating that the information stored for suchcontrols is to be transmitted to the remote server computer thatoriginally generated the web page that the client needs to send suchinformation to the proxy, for relay to such a server.

[0784] In other embodiments of the invention having a higher bandwidthlink to the thin client, it might be desirable to simplify the code ofthe thin client, by having more or substantially all of thefunctionality associated with individual control objects run on theproxy.

[0785] When the screen capture and download routine determines that thescreen redraw requested by function 10602 of FIG. 106A is complete,function 10672 of FIG. 106C causes function 10764 to call the downloaddisplay list routine 10700 shown in FIG. 107.

[0786] As shown in FIG. 107, the download display list routine has afunction 10702 that places all elements in the download display listthat are to be totally or partially newly displayed on the new thinclient's screen in a download stream. Normally this includes anyelements in the browser's virtual screen that occur within the currentview window. As is explained below, however, in the case of a scroll inwhich a significant portion of the prior bitmap on the thin client'sscreen can be reused, only elements that occur at least partially in theportion of the view window that does not correspond to the reusableportion of the thin client screen's current bitmap are placed in thedownload stream.

[0787] In many embodiments of the invention the functions of FIGS. 106Athrough 106C that creates the download display list do not enter anelement on the download display list if it does not fit within the viewwindow. In other embodiments this filtering takes place in function10702.

[0788] In some embodiments of the invention elements that are downloadedare clipped, so that only those portions of such elements that are toactually fit within the thin client screen are downloaded. This wouldhave the benefit of decreasing the number of bits required for download,but it would add computational complexity.

[0789] Once all the elements on the download display list to be shown onthe thin client screen have been placed in the download stream, function10704 places the bitmaps of all images with a corresponding imagelocation command in the download stream at the end of the downloadstream, as indicated by the numeral entries 10818 in FIG. 108. Someembodiments of the invention, before they places such bitmaps at the endof the download stream perform a lossy compression on them. In someembodiments, the algorithm used is one that clusters the color values inthe image into clusters of colors having visually imperceptibledifferences in RGB color values, using a metric that takes into accountthe fact that green color values differences are more perceptible thanred color value differences, and that red color value differences aremore perceptible than blue color value differences.

[0790] Then function 10705 compresses the download stream, including theimages previously compressed by the lossy algorithm, using a losslesscompression algorithm. Standard prior art lossless compressionalgorithms can be used for this purpose.

[0791]FIG. 108 is a schematic illustration of such a download displaystream. In some embodiments such a stream is actually represented usinga markup language.

[0792] The font commands 10812 shown in FIG. 108 represent font commandsrecorded in the display list by function 10623 of FIG. 106A.

[0793] The string commands 10814 of FIG. 108 represent commands recordedin the download display list by the step 10624 of FIG. 106A.

[0794] The background color commands 10806 of FIG. 108 represent thebackground color commands entered by the function 10632 shown in FIG.106A.

[0795] The rectangle commands 10808 of FIG. 108 represent rectangleinformation stored by function 10634 of FIG. 106A.

[0796] The image location commands 10810 shown in FIG. 108 representimage location commands recorded by the function 10664 of FIG. 106B.

[0797] The control commands 10816 of FIG. 108 represent control commandsplaced in the download display list by the function 10668 of FIG. 106C.

[0798] Returning now to FIG. 107, once all the elements for the downloadstream have been selected and the stream is ready to be sent, function10706 opens a socket connection between the browser computer and thethin client, and then function 10708 sends the download stream's displaylist information down to the thin client. The thin client then displaysinformation, as is described below in greater detail with regard toFIGS. 109A through 109C.

[0799] Returning now to FIG. 106C, once the call in the function 10674to the download display list routine is complete the function 10676clears the display list, so the new display list can be created for thenext screen that is to be downloaded to the thin client.

[0800] Returning now to FIG. 105A, we have just described the completionof the screen capture and download routine called by function 10510shown in that figure.

[0801] As shown in FIG. 105A, if the browser's proxy code receives aquery from another portion of the browser code for the state of one ormore control objects displayed on the thin clients screen, function10516 sends a query to thin client for the state of that one or morecontrol objects. When such state information is received from the thinclient, it is returned to the programming that made the request for suchstate information.

[0802] As was described above with regard to functions 10666 through10670 of FIG. 106C, this embodiment of the invention actually has thethin client draw and store state information about individual controlobjects, such as radio buttons, check boxes, and text entry fields, toreduce communication bandwidth as the user changes information prior toselecting to have it submitted to the web site on whose web page suchcontrols are shown. Commonly when the user clicks a submit button theassociated click event is transmitted up to the proxy computer, it hasits screen coordinates transformed the corresponding coordinates on thevirtual layout screen, and then it is placed in the browser's eventqueue for the browser code to respond to that click event as if it hadbeen generated on the screen, having the virtual screens resolution,that the browser thinks it is displaying. Once this is done, thebrowser's standard code asks for the state of all of the current webpage's control objects, so it can post that information back to the webserver from which the current web page came. It is such requests thatcause the operation of functions 10514 through 10518.

[0803] If the browser's proxy code receives a scroll or move commandfrom the thin client, functions 10522 through 10534 of FIG. 105A areperformed.

[0804] Function 10522 moves the view window 10210 shown in FIG. 102relative to the browser's layout 10206 in response to the scroll ormove. Then function 10526 tests to see if any significant portion of theview window that was in the view window before the move is still in theview window after the move. If this is the case, it means a substantialportion of the bitmap currently being displayed on the thin browserscreen can be reused in the display after the requested scroll or moveis accomplished. In this case function 10528 places a scroll command10804, illustrated near the top of the download stream in FIG. 108, atthe start of the new display list that is to be created for the scrolledscreen. Such a scroll commands includes an XY shift value that indicateswhich portion of the thin client's prior screen bitmap is to be reused.

[0805] In FIG. 108 both a clear command 10802 and a scroll command 10804are shown at the start of the download stream, so that both can beillustrated. In the current embodiment only one of these two commands,the clear command or the scroll command will start a download stream,with the first being used if the screen of the thin client is to betotally redrawn, and the second being used if a portion of the thinclient screen's prior bitmap is to be shifted for reuse in the newscreen.

[0806] The reuse of a substantial portion of a screen display that hasbeen previously downloaded and drawn, made possible by the use of thescroll command, can substantially reduce the amount of data that has tobe downloaded to the thin client in scrolls that involved relativelysmall changes in position. This can substantially speedup the rate atwhich scrolled screens can be displayed on the thin client, particularin situations in which there is a limited bandwidth between the browserand the thin client, such as if they're communicating over therelatively slow digital cellular link common at the time thisapplication is being filed.

[0807] If the moved view window that results from a scroll or movecommand includes a portion of the web page's layout not currently in thevirtual screen 10206, shown schematically in FIG. 102, function 10530 ofFIG. 105A causes functions 10532 and 10534 to be performed. Function10532 scrolls the browser's virtual screen so that all of the viewwindow will be contained within it, and then function 10534 requests aredraw from the browser for the newly moved virtual screen. Once thisredraw is complete functions 10506 and 10510 will capture the newlydrawn elements and will draw them, as has been described above withregard to FIGS. 106A through 106B.

[0808] If the browser's proxy receives a zoom command from the thinclient, function 10536 of FIG. 105A causes functions 10538 through 10552to be performed.

[0809] Function 10538 changes the display scale factor according to thezoom change.

[0810] Function 10540 scales the view window relative to the browser'svirtual window according to the selected zoom.

[0811] Function 10542 checks to see if the scaled view window includesportions of the web page's layout not currently contained within thevirtual screen. If so, it causes function 10544 to scroll the virtualscreen or change its resolution to make the scale view window fit withinthe virtual screen.

[0812] If scrolling the virtual screen will enable to new view window tofit within the virtual screen, there is no need to re-layout the webpage, and the zoom can be used to display the same layout as existedbefore the zoom, by showing a different location within it and/or bydisplaying it at a different scale factor. If, however, the zoom is azoom out that causes the view window to be larger than the virtualscreen size, in the embodiment shown in FIG. 105A, this will requirethat the web page be laid out at a new virtual screen size that allowsthe view window to fit entirely within it the virtual screen, so thatthe proxy browser can handle any input supplied to any portion of theview window displayed on the client as if it had occurred at acorresponding location on the proxy browser's virtual screen. In theembodiment being described, this may cause the web page to be displayedat a new layout if the new virtual screen resolution is larger than thelayout resolution used in the previous layout, and this can cause linebreaks to occur in different locations.

[0813] In other embodiments of the invention, such as ones in whichproxy browser was designed, rather than patched, to support zoomedviews, and such as the ones described with regard to FIG. 115 in whichthe client zooms directly relative to a download of an entire layout,extreme zoom outs need not require a re-layout of the web page.

[0814] Finally function 10552 calls for a screen redraw. This causes thescreen capture and download routine to capture the redraw of the currentview window with the new zoom scale factor, and download correspondingdisplay information to the thin client so they can display the web pageat the new zoom setting.

[0815] As indicated in FIG. 105B, if the browser's proxy receives avirtual resolution change command from the thin client, function 10554causes functions 10556 through 10560 to be performed. Function 10556changes the browser's virtual screen resolution to the requestedresolution. Then step 10560 calls for a screen redraw. This is becausethe browser re-lays out the current web page at the new virtual screenresolution, and redraws all of the current view window to be captured atthe display's scale factor corresponding to the ratio between the numberof pixels the view window has in the virtual screen relative to thenumber of pixels it has on the thin client screen.

[0816] Such a change in virtual resolution changes the size at which alayout is performed relative to the size of images and text within sucha layout. Such a change in relative layout size changes the size atwhich images and text will be displayed on the screen, unless the usermakes a change in the relative size of the view window relative to thevirtual screen that cancels such a change in size. In the absence ofsuch a compensating change in relative view window size, decreasing thevirtual resolution increases the size at which images and text will beshown on the screen, and tends to make the text lines shorter relativeto the size of the fonts shown on them, so as to allow more of textlines to fit on the screen at one time at a larger text size. Thus,changes in virtual layout size can be used to provide a certain type ofzoom capability to the display of web pages.

[0817] The inventors have found that quite good readability can besupplied using virtual screen of 640 by 480 when displaying web pages ona typical PDA-sized 320 by 240 screen, which involves scaling down thelayout by a factor of 2. However, the invention can be used to displayweb pages at even more reduced scales, such as displaying an 800 by 600virtual screen resolution on a PDA-sized 320 by 240 display, even thoughreadability will suffer, so as to enable a user to see how the web pagemight look when laid out for larger resolution displays. Of course, ifthe reader chooses to have the minimum font size limited, as wasdescribed above with regard to function 10614 of FIG. 106A, the text,even with such a large virtual resolution would still be shown withreadable fonts, although the layout of the page would be quite differentthan that originally intended for display at such a resolution, becauseof the relative increase in font size that would result.

[0818] As indicated by function 10562 of FIG. 105B, if the browser'sproxy code receives other user input from the thin client associatedwith a click on the thin client's screen, function 10564 transforms thethin client screen position associated with the click to thecorresponding position on the virtual screen, and function 10566 relaysthe event to the browser's event queue so that it can respond to it asif the user had actually clicked on the virtual screen that most of thebrowser's code thinks it is laying out.

[0819] This is the method by which the browser on the proxy responds toinput the user of the thin client makes to select most links, whetherthey be text links or image links, on the web page displayed on the thinclient. For example, if the user clicks on a link displayed on the thinclients screen, the corresponding click will be relayed to the browseron the proxy, which will act as if the user had clicked on the same linkin the virtual screen that it thinks it is displaying. The proxy'sbrowser then responds by issuing an HTTP request over the Internetcorresponding to the link. When the web page corresponding to that linkis received, the browser will lay out and seek to display it on thevirtual screen, causing functions 10506 and 10510 of FIG. 105A tocapture the information contained in that the portion of the layoutcorresponding to the view window and to download it to the thin clientfor display on it's screen. As a result, the user of the thin client isable to surf the Web, in much the same manner as a user of a normalbrowsing computer.

[0820]FIGS. 109A through 109C are highly simplified pseudocoderepresentations of code 10900 on the thin client computer designed tohelp it operate in conjunction with the proxy browser to enable itsusers to browse the World Wide Web using its screen.

[0821] Function 10902 of FIG. 109A responds to the receipt of all or aninitial portion of the download stream sent to the thin client byfunction 10708 of FIG. 107. It does so by starting to respond to theindividual commands, of the type illustrated in FIG. 108, contained inthat stream in the order in which they are received. It starts doingthis as soon as one or more such commands are received so that the workof drawing the new screen need not be delayed until the download streamhas been fully received. The response to each different type of commandcontained in the download stream is indicated by the functions numbered10904 through 10956 in FIGS. 109A through 109B.

[0822] As indicated by functions 10904 and 10906, when the thin clientreads a clear command in the download stream it causes the bitmapdisplayed on its screen to be cleared, or set to a totally white value.

[0823] When the thin client reads a scroll command in the downloadstream, function 10908 causes functions 10910 and 10912 to be performedFunction 10910 copies the portion of the thin client's screen's bitmapthat is to be reused after the scroll specified in the scroll command toa new position on that screen indicated by the XY shift value includedin the command. Then function 10912 clears the remaining portion of thescreen.

[0824] When the thin client reads a background color command in thedownload stream, functions 10914 and 10916 set the current rectanglebackground color variable to the color specified in the command. Thiscauses all rectangles drawn by the thin client in response to rectanglecommands until the background color value is changed again to have thatspecified color value.

[0825] When the thin client reads a rectangle command in the downloadstream, functions 10918 and 10920 draw a rectangle, using the currentbackground color, having a screen position, width, and height specifiedin the command.

[0826] When the thin client reads an image locations command, functions10922 and 10923 do nothing at that time. This is because the bitmap'snecessary to draw the image referenced in such an image locationscommand usually will not have been received at such time. In otherembodiments, the browser associates rectangle draw commands with images,which will cause the portion of the thin browser screen associated withimages to have a rectangle drawn on them indicating where a bitmap imageis to be displayed.

[0827] When the thin client reads a font command, functions 10924 and10926 set the value of all font attributes listed in the font command tothe values listed for those attributes in that command. In differentembodiments of the invention different font attributes can be used. Itis preferred that at least font family, font size, and font foregroundcolor be supported font attributes.

[0828] When the thin client reads a string command in the downloadstream, function 10928 causes functions 10930 through 10940 to beperformed.

[0829] Functions 10930 tests to see if the thin client has in its fontbitmap cache a bitmap for each character of the current string in thecurrent size and font family specified by the current font attributevalues. If not, functions 10932 through 10936 are performed.

[0830] Function 10932 sends an HTTP request over the thin client'sInternet connection to the font server 134 described above with regardto FIG. 2. When the requested font is received from the font server,functions 10934 and 10936 place it in the thin client's font bitmapcash.

[0831] It should be noted that some embodiments of the inventionpermanently store, as part of the thin client browser software, asufficient set of font bitmaps so that the use of the functions 10930through 10936 are not necessary. In other embodiments,subpixel-optimized font outlines are either stored permanently by thethin client or are requested as needed, as are the font bitmaps in theexample described in FIG. 109A.

[0832] When the thin client has all of the font bitmaps necessary torender the current string, functions 10938 and 10940 draw the stringusing the current font attribute values including foreground color, uponthe screen at the specified screen position. In the current embodimentfont bitmaps are represented as alpha value bitmaps of the typedescribed above with regard to FIGS. 60, 96, and 97. When doing so, thebackground color is derived from the portion of the bitmap over whichthe string is to be drawn.

[0833] In some embodiments, in order to reduce computation, the colorvalue of the portion of the screen over which the string is to be drawnis sampled at a relatively few number of points, and the average ofthose sampled color values is used as the background color for theentire string display, as is described above with regard to FIG. 97.

[0834] In the embodiment being described, all of the strings containedin the download stream are single line text strings, many of which mayhave resulted from the wrapping of continuous text across lineboundaries by the proxy browser's layout engine. As a result, in thisembodiment, the thin client does not have to perform any such wrappingof text.

[0835] Function 10940 draws a bitmap image of a strings by composing itfrom a plurality of separate font bitmaps corresponding to the lettersof the string. Normally in such composition each different separatecharacter will be represented by a different separate font bitmap.

[0836] It is preferred that the fonts used in such composition atdifferent font sizes (such as different font sizes caused by changes inscale factor) have the shape and pixel alignment of each characterselected to improve readability at each such font size. In mostembodiments this improved readability is produced by selecting thecharacter shape and position relative to a font bitmap so as to increasethe alignment of the character shape with the pixelation of the bitmap.Such shape and pixel alignment is particularly critical when dealingwith font bitmaps of ten pixels per em or less, and is even morecritical at eight pixels per em or less. This is because as font bitmapsbecame smaller they become more difficult to read because of their morecourse pixelation, and thus it becomes even more critical that they havecharacter shapes and alignments selected to fit such pixelation.

[0837]FIGS. 56, 57, and 99, 101, 168, 169, 172, 173, and 174 illustratepixel optimized font bitmaps that have drawn by a thin client. In manyembodiments of the invention the font bitmaps used by step 10940 atsmaller scales are subpixel optimized bitmaps created by non-linearcolor balancing of the type described above, in which only colorimbalances that occur within a pixel are distributed. When suchsubpixel-optimization is combined with character shapes that have beenproperly shaped and aligned to better match their bitmap pixelation, theresulting bitmaps drawn are amazing easy to read considering their smallpixel size.

[0838] Returning now to FIG. 109B, when the thin client reads a controlcommand from the download stream, function 10942 causes functions 10944through 10948 to be performed.

[0839] Function 10944 tests to see if the thin client has alreadycreated a data or program object corresponding to the control IDspecified in the current control command. If not function 10946 createssuch a data or program object of the type specified in the controlcommand and associates it with the control ID specified in that command.

[0840] Then step 10948 draws a subpixel-optimized bitmap of thespecified type of control object on the thin client's screen at thelocation specified in the control command. It then draws the textassociated with the control on the control object's bitmap usingsubpixel-optimized fonts. Then it associates a hot zone, having adisplay screen position corresponding to the control's bitmap, with thedata object or program object representing the control on the thinclient.

[0841] When the thin client reads an image command from the downloadstream, function 10950 causes functions 10952 through 10956 to beperformed.

[0842] Function 10952 scans the current display stream for alloccurrences of an image location command that has the same image ID asthe current image command. For each such image location command, itcauses function 10954 to draw the bitmap at the location specified bythat image location command upon the thin client's screen. As with allthe thin client's draw functions, any portion of the image that does notfit on the thin client screen is clipped in such draw operations.

[0843] Next function 10956 redraws all other items in the display listthat occur at the same location as any of these drawn bitmaps. This isnecessary because it is common for web pages to place text on top ofimages, and, thus, it is desirable that any strings that are intended tobe displayed at the same location as a bitmap image be redrawn afterthose images are drawn. In one embodiment of the invention, the thinclient merely redraws all non-image elements of the download stream'sdisplay list that occurs after the first image location command in thatlist.

[0844] If the user clicks on a hot zone 11000 associated with a textentry field, as indicated in FIG. 110, functions 10958 and 10960 of FIG.109B cause a keyboard routine comprised of functions 10962 through 10978to be executed.

[0845] Function 10962 displays a pop-up user keyboard 11102 and textedit field 11104, illustrated in FIG. 111, on the thin client's screen.Then a loop 10964 is performed until the user presses the enter key onthe pop-up keyboard. During this loop each time a user types a textcharacter, function 10966 causes function 10968 to place asubpixel-optimized text bitmap of the character on the pop-up keyboard'stext edit line at the current cursor position and moves the bitmap ofthe cursor to a position after the newly drawn character, and thenfunction 10970 adds the typed character to a temporary text edit stringassociated with the pop-up keyboard's programming.

[0846] When the user presses the enter key of the pop-up keyboard,function 10972 causes functions 10974 through 10978 to be performed.Function 10974 stores the value of the temporary text edit stringassociated with the pop-up keyboard in the text edit control for whichthe pop-up keyboard has been evoked. Then function 10976 draws thecharacters of that text edit string, using subpixel optimized bitmaps,in the bitmap of the text entry field 11000 of the control object on thethin client's screen, as shown in FIG. 112.

[0847] Then function 10978 removes the pop-up keyboard from the thinclient's screen by drawing over it the bitmap that was displayedon-screen before the pop-up keyboard was drawn.

[0848]FIG. 113 illustrates that the pop-up keyboard routine can be usedfor other purposes besides entering text in text entry field. Althoughit is not represented in the pseudocode of FIGS. 109A through 109C, thepop-up keyboard can also be used to enter the URLs of web pages a userwould like to see displayed on the thin client.

[0849]FIG. 114 is virtually identical to FIG. 113, except it illustratesan embodiment of the invention that has a button bar, or Toolbar, at thetop of its graphical user interface. This button bar includes at itsleftmost end back and forward buttons of the type commonly found in Webbrowsers. It also includes buttons labeled R, B, and H that correspondto a refresh button, a bookmark button, and a history button, which arealso functions commonly found on Web browsers. The button bar alsoincludes an URL text entry field, which if clicked will cause the pop-upkeyboard shown in FIG. 114 to appear. When the pop-up keyboard is notbeing displayed, this text entry field displays the URL of the currentweb page displayed on the thin client's screen. In one embodiment of theinvention a user can select whether or not to display such a toolbar bypressing a hardware button. In this embodiment, even when such a toolbar is not shown the user can use hardware buttons to invoke some of themore common web browsing functions, such as the back command and forwardcommands.

[0850] In other embodiments of the invention, such a graphical userinterface Toolbar would preferably also include buttons or menusallowing the user to access other functionality of the browser,including changing the zoom and/or relative layout size of a web page'sdisplay.

[0851] Returning now to FIG. 109B, if the user clicks on a hot zone of abutton or menu item control, function 10980 causes functions 10981 and10982 to be performed.

[0852] Function 10981 changes the appearance of the button or menu itemappropriately. In the case of a button, the bitmap associated with thebutton is redrawn to indicate the button is being pressed. In the caseof a menu item, either a submenu will be display, or the display of themenu item will be removed, depending upon whether or not a finalselection has been made.

[0853] If a final selection has been made in the case of a menu item, orthe button has been pressed and released, function 10982 sends thebutton's or menu item's control ID and an indication that it has beenselected up to the browser, which responds by causing the correspondingbutton or menu item control object on the browser to act as if it hadbeen clicked.

[0854] If the user clicks on the hot zone associated with another typeof thin client control, function 10983 changes the appearance of thecontrol's bitmap on the thin client's display accordingly. For example,in the case of a check box, a check would either be displayed or removedfrom the display of the control on screen. Then step 10985 stores thecorresponding state change in association with the control object. Asstated above, in the embodiment being described, the state of suchcontrol objects are not communicated to the browser until the browserrequests such information, in order to reduce communication demands.

[0855] If the user clicks on any other portion of the thin client'sscreen not associated with the control interface of the thin clientprogram or its computer, functions 10986 and 10987 send an eventcorresponding to that click up to the proxy browser along with thescreen location at which it occurred. As was described above with regardfunctions 10562 through 10556 of FIG. 105B, the browser will transformthe location of such a click to the corresponding location on itsvirtual screen, and will respond to such a click as if it occurred uponthe screen the browser thinks it is drawing at the resolution of thevirtual screen. In some embodiments, to further reduced communicationdemands, the thin client will only report such other clicks to thebrowser if it has reason to believe they corresponds to a user input theproxy's browser is supposed to respond to.

[0856] Referring now to FIG. 109C, if the thin client receives a queryfrom the proxy browser asking the state of one or more control objects,function 10988 causes function 10989 to query the state of thecorresponding controls on the thin client, and function 10909 totransmit that state information to the proxy browser. As was describedabove with regard to function 10518 of FIG. 105A, the proxy browser willthen return such requested information to the part of the browser whichrequested it, as if that information were part of the current state ofthe corresponding control objects associated with the virtual screen.

[0857] If the user of the thin client enters the command to scroll itsscreen, functions 10991 and 10992 upload that scroll command to theproxy. This causes the functions 10520 through 10534 described abovewith regard to FIG. 105A to generate and download a new download streamfor the display of the current web page at the newly scrolled position.

[0858] If the user enters the command to change the zoom, i.e., scale,of the image displayed on the thin client, functions 10993 and 10994upload a corresponding zoom command to the proxy. This causes thefunctions 10536 and 10552 described above with regard FIG. 105A to causea new download stream to be downloaded to the thin client for display ofthe current web page at the new zoom setting.

[0859] If the user enters the command to change the virtual resolutionof the thin client's display, that is to change the resolution at whichthe virtual screen on the proxy browser is laid out, functions 10995 and10996 upload the selected virtual resolution to the proxy. This causesfunctions 10554 through 10560, described above with regard FIG. 105B, tohave the virtual screen re-laid out at the new resolution and acorresponding downloads stream to be sent to the thin client, so it candisplay the portion of the virtual screen corresponding to the window atthe current zoom setting upon the thin clients screen.

[0860] As indicated at the bottom of FIG. 109C, if the user entersanother command associated with the thin client's control graphical userinterface, function 10997 will cause a correspondingly appropriateresponse, indicated by the ellipses 10999 to be performed. Such otherfunctions can include the selection of bookmarks, the accessing ofbookmarked web pages, back and forward functions, or any other functionthat can be part of a browser's user interface. Such demands can beselected by use of physical buttons or other physical inputs on the thinclient computer, by the selection of graphical objects, such as buttons,menu item, or dialog box controls, or virtually any other knowngraphical user interface technique.

[0861]FIGS. 115 through 118 relate to an alternate method for enabling athin client computer to browse the web through a proxy server. In thisembodiment the entire layout 10206 of a web page created by the proxycomputer is downloaded to, and cached by, the thin client, as indicatedin FIG. 117. As will be described, this allows the thin client to scrollwithin the layout at substantially higher speeds, although it canincrease the total number of bits downloaded, since it attempts todownload the entire layout of, and all images for, each web page viewed.

[0862]FIG. 115 illustrates portions of the proxy browser's code 11500that can be used with such a page layout caching scheme.

[0863] In this embodiment of the invention if the proxy browser receivesa request for a web page from the thin client, functions 11502 causesfunctions 11504 through 11524 to be performed.

[0864] As indicated by the pseudocode associated with function 11502 inFIG. 115, in this particular web caching embodiment the thin client canrequest a web page with a desired view setting for that page, includinga desired virtual resolution, zoom setting, and view window position.This is done to allow a user to associate such view settings with abookmark, including a particular URLs or a portions of a URL path name,so as to allow the user to automatically see such web pages at a desiredvirtual resolution, zoom setting, and view window position, withouthaving to separately enter such setting values each time the page isrequested. This, for example, would allow a user view commonly accessedweb pages with the display automatically zoomed in on a desired portionof that page using text of a desired size.

[0865] Once a request for a web page has been received from the thinclient, function 11504 on the proxy browser requests that web page fromthe server identified in the URL of the request from the thin client.When the web page is received from the server function 11506 causesfunctions 11507 through 11516 to be performed.

[0866] Function 11507 causes the layout engine of the browser on theproxy to lay out the received web page at the virtual screen resolutionassociated with the view setting specified in the web pages request.This layout is made using scaled string measurements for substitutedfonts, in a manner similar to that described above with regard tofunctions 10606 through 10618 of FIG. 106A. The scale factor used isdetermined by the view setting specified in request for the currentpage.

[0867] Function 11508 specifies a virtual screen position relative tothe resulting layout that will include the view window implicit in theview setting of the current request. Thus for example, if the viewsetting requests to see the rightmost portion of a 640 by 480 virtualscreen resolution output, and the layout is forced to have a width of800 pixels, the virtual screen position would extend from approximatelypixel column 160 over to pixel column 800 in the layout.

[0868] Function 11518 causes functions 11520 to scale andsubpixel-optimize each image 11702, illustrated schematically in FIG.117, received in association with the web page being laid out.

[0869] Once all the images referenced in the web page have beenreceived, scaled, and subpixel optimized, function 11522 causes function11523 to create a display list for that layout, and to compress thatdisplay list and all its associated subpixel-optimized, scaled-downimages. Then function 11524 transmits that compressed data to the thinclient in a download stream that includes the web page's layout,followed by its scaled-down, subpixel-optimized images.

[0870] If the user receives a request from a thin client to rescale andsubpixel-optimized one or more images previously downloaded at adifferent scale, function 11526 through 11532, rescale andsubpixel-optimize, compress, and download such images to the thinclient. This allows the user to view the web page at a differentsubpixel optimized size if he or she seeks to view the downloaded webpage layout at a different zoom setting.

[0871] If a screen input's event is received from the thin clientfunction 11534 causes functions 11536 through 11542 to be performed.

[0872] Function 11536 tests to see if the page layout coordinatesassociated with the command corresponds to a portion 10206A of the webpage layout 10206 currently mapped to the proxy browser's virtual screen10208, shown in FIG. 117. If not, function 11538 scrolls the virtualscreen to a new portion 10206B of the layout that includes the layoutcoordinates associated with the command.

[0873] Function 11540 calculates the virtual screen coordinatecorresponding to the page layout coordinate of the received screenevent. Then function 11542 places the input screen event with itsvirtual screen coordinates in the browser's event queue, so that it canrespond to that event, such as the clicking of a link, as if the userhad clicked at its corresponding virtual screen coordinate on thevirtual screen itself.

[0874]FIG. 116 is a highly simplified pseudocode description of portionsof the thin client code that can be used to support the page layoutcaching scheme illustrated in FIGS. 115 and 117.

[0875] If the thin client starts to receive a download stream containinga page layout's display list, function 11602 causes function 11604 and11606 to be performed.

[0876] Function 11604 sets the mapping of the view window (such as theview window 10210A shown in FIG. 117) relative to the page layout, andthen calculates the current display scale factor based on that mapping.

[0877] Function 11620 displays any portion of the downloaded page layoutthat falls within the current view window, using the current scalefactor. This process includes the functions 11622 through 11630.

[0878] Function 11622 displays each string element that occurs withinthe current view window with font sizes that are a function of thecurrent scale factor. When it does so it adjusts, if necessary, for anydisproportionate changes in the relative size of characters that mightresult from the uneven effects of font hinting as the pixel size atwhich such characters are displayed changes. It does this by usingtechniques for compensating for the discontinuities anddisproportionalities, such as changing spacing between characters,similar to those that have traditionally used to provide a WYSIWYGcorrespondence between the display of text on a computer screen and itsappearance when printed at a much higher resolution. If font bitmapshaving a different size that than previously displayed are required,font bitmaps for such differently sized characters can be eitheraccessed from storage on the thin client, accessed from a network fontserver, or rasterized at the needed size from a font outline.

[0879] If the display created by function 11620 is at a different scalefactor than that for which the bitmap images 10818 have beenscaled-down, function 11624 causes functions 11626 through 11630 to beperformed. These request the proxy server to rescale at the new scalefactor and subpixel-optimize all images that are totally or partiallywithin the view window. Then the bitmaps of the same images are locallyrescaled from the formerly downscaled and subpixel-optimized images10818 stored on the thin client and displayed on the thin client screento provide a temporary representation for such images. Then, when therequested images that have been rescaled from the original, higherresolution bitmaps associated with the web page have been received bythe thin client from the proxy server, they are drawn at the appropriatelocation on the display screen.

[0880] In some embodiments, when a user changes the zoom of the display,the bitmaps of any images corresponding to a portion of the page on thescreen at the new scale factor are displayed with a quick, but cruderepresentation of the image generated on the thin client to provide theuser a temporary representation of such images to be used until theproperly subpixel-optimized versions of the images have been downloaded.Such quick representations are relatively simple to generate when thenew scale factor is an integral ratio of the scale factor of thepreviously downloaded bitmaps. When this is not the case, the temporaryrepresentation could be produced in any of a number of ways. Theseinclude displaying them as images having integral scaling ratio thathave been either cropped or scaled to an integral ratio smaller than theproper scale so to not take up more space than the properly scaledimages that are intended to over draw them.

[0881] If the user generates a screen input to be sent to the proxybrowser, function 11632 through 11636 transform the thin client screencoordinates of the input to a corresponding page layout coordinate. Thenthe screen input and corresponding page layout coordinate are uploadedto the proxy browser. The proxy browser then responds to such an inputusing the functions 11534 through 11542 described above with regard FIG.115. This causes the proxy browser to respond to such screen input as ifthe user had clicked on a corresponding portion of the web page on theproxy browser's virtual screen.

[0882] Caching schemes, such as that just described with regard FIGS.115 through 117, that allow the thin client to store more than theportion of a web page currently displayed on a screen, can be used toallow a user to scroll and/or zoom more rapidly relative to web page'scontent. This is particularly true if the thin client has a relativelylow bandwidth to its proxy server.

[0883] The embodiment of such a caching scheme that has just beendescribed operates relatively well even with bandwidths as low as thoseassociated with current digital cellular communication rates commonlyavailable at the time of this application. This is because all thecontent, except images, included in most web pages can normally becompressed to fit into 3,000 bytes or less. Thus, at commonly availablecurrent digital cellular communication rates, the entire text portion ofmost web pages could be downloaded in several seconds, and the initialportions of it could be drawn in even less time. Of course thedownloading of the images might take more time, but all but large imagesat the start of the web page would commonly be displayed within a fewseconds. And with faster communication links this delay can be reducedtremendously.

[0884]FIGS. 118 through 120 illustrate aspects of the invention that canbe used in virtually any Web browsing environment, but which areparticularly useful when browsing the Web on small screens. Thisincludes use on small screen devices such as the thin client computersdiscussed above. Because these aspects of the invention involve a zoominto or out of a selected portion of a web page, they can be made towork quickly on such thin client computers by use of a layout cachingscheme of the type just described.

[0885]FIG. 118 shows the view of a standard web page that has been laidout at a virtual resolution of 640 by 480 and then downscaled andsubpixel-optimized for display on a 320 by 240 screen. Such content isreadable by those with good eyes at the distance at which most peoplecommonly use handheld computers. However the content of most Web pagescan be made even easier to read if it is displayed at a larger size.Since most Web content is laid out in a plurality of columns, it wouldoften be desirable to be able to quickly zoom a display to the top of acolumn at which a user would like to start reading. In the interfaceshown in FIGS. 119 and 120 a user can do this by dragging the pointingdevice 11902 across the desired text column at a vertical position thatthe user would like displayed near the top of the display screen in thezoomed view. When the display is in the mode to perform this type ofzoom, a horizontal linear drag of the type shown in FIG. 119 will causethe display to scale the width of the web page layout indicated by thedrag to fit the width of the screen. In the example shown in FIG. 119this user input would cause the display to be zoomed as shown in FIG.120.

[0886] Preferably the user interface also allows a user to drag aselection box around an area in the web page layout shown on the screen,and the system will zoom the display of the web page so that theselected area in the web page fits the screen.

[0887] It is also preferred that in such drags the user be allowed todrag the pointing device across a boundary associated with an edge ofthe screen, and if this is done the portion of the web page shown on thescreen will scroll in response, to allow the user to select to perform azoom to fit to a width, height, or area within the web page layout thatis too large or improperly positioned to fit totally within the screenas the start of such a drag. If such a drag selects a portion of thelayout too large to fit on the screen at the scale factor displayedduring the drag, it would change the scale factor so as to decrease thesize at which text and images were displayed.

[0888] When we say that a selected width, height, or area in the layoutis scaled to fit the screen, we mean that it is scaled to have itslargest dimension ranges between two thirds and the full correspondingdimensions of the screen. Normally it would be preferred that suchscaling make the selected length or area have a largest dimension thatranges from eighty or ninety percent to the full corresponding dimensionof the screen.

[0889] FIGS. 121 to 128 illustrate a feature of the invention calledzoom-click. This feature allows a user to more easily and accuratelyselect items within a screen that is seen with a low resolution, whichis very small, or which is being used with a pointing device that cannot be easily positioned with accuracy relative to desired locations ona screen. This is particularly useful with dealing with cellphone sizedscreens, with touch screen devices using fingers as a pointing device,and/or for touch screen devices used in an environment such as a movingcar in which it is difficult to accurately place the pointing device.

[0890] In zoom click when the user clicks down at a given location in ascreen, the portion of the screen upon which he or she has clicked isshown at an expanded scale. The user is then free to navigate in thisexpanded representation with the pointing device held down until thepointing device is in the desired location. At this point the user canstop pressing down, and release the pointing device, causing the currentlocation at the time of the release to be treated as the selectedlocation for purposes corresponding to a traditional graphical userinterface click.

[0891] With zoom click double clicks can be represented in differentways. One of the easiest is merely to record a quick secondary click andrelease shortly following a zoom click and near the same location as thezoom click as converting the zoom click into a double-click.

[0892] In preferred embodiments of the invention where a user can movethe cursor without a down click, such as with most non-touch screenpointing device, the pointer movement in the enlarged view during thedown click in a zoom click to occur at the same rate as normal pointernavigation. This means that a user will have approximately twice thepointing resolution as he otherwise would.

[0893] It is also preferred that when a user gets to the edge of thescreen while moving the pointer during a sustained down click in zoomclick mode the image will scroll to enable the user to navigate theentire page in this mode.

[0894] In the example of FIGS. 121 through 128, a clamshellcellphones/computer 120C is shown. In this example, it is assumed thatthe cellphones has a 320 by 240 whole pixel resolution and colorsubpixel addressability. Of course in other embodiments of the inventionother resolutions could be used. For ease of use, the cellphone isassumed to have a touch sensitive screen that can be operated by auser's finger.

[0895]FIG. 121 shows the cellphones with the same image of thepriceline.com Web page shown in FIGS. 11 and 110.

[0896]FIG. 122 shows what happens when, while in zoom-click mode, theuser tries to press his or her finger 12102 down upon the screen toselect the same text entry field 11000 discussed above with regard FIG.110. It is often difficult to estimate in advance the exact location atwhich a cursor will be placed when one touches one's finger to atouchscreen. Zoom click helps with this, since it allows the user to seethe position of the cursor 170 that results from a finger touching thetouch screen before any selection is made. It also shows the screen at alarger view scale to make it easier for the user to position the cursor12204 on the desired link or control, such the desired text entry field11000 shown in FIG. 123. Once the user removes his finger from thetouchscreen, as shown in FIG. 124, the popup keyboard 11102 appears,just as it did in FIG. 111, described above.

[0897] As shown in FIG. 125, when the user, while in zoom click mode,tries to touch a desired letter in the pop-up keyboard 11102, in thiscase the letter “b,” the image of the portion of the keyboard touchedincreases its scale. In the example shown in FIG. 125 the user has notexactly position the cursor 12204 at the desired location at the time ofhis initial pressing of the touchscreen. The user can easily correctthis problem in zoom-click mode by dragging his finger 12202 to positionthe cursor 11102 at the location shown in FIG. 126. If the user thenremoves his finger from the screen, the screens image will revert to itsnormal scale, which enables the entire pop-up keyboard 11102 to be shownto allow rapid selection of the next character, no matter where it mightlie within the keyboard.

[0898] As shown in FIG. 127, the letter “b” selected in FIG. 126 isshown as having been entered in the pop-up keyboard's text entry field11104.

[0899] If the user continues selecting characters by the process shownin FIGS. 125 through 127 he or she will be able to enter an entirestring of text followed by the selection of the enter key that willcause the desired text to be entered at the desired location in the webpage, as indicated by FIG. 128.

[0900] In many embodiments of this aspect of the invention, the zoomsused in zoom click involve expanding the bitmap previously shown on allor part of the screen by an integral ratio, such as 2× or 3×. Thisallows such zooming to be performed virtually instantaneously, even byrelatively low powered processors, making zoom click a very rapid userinterface.

[0901]FIGS. 129 through 137 illustrate an aspect of the invention thatenables a user of a Web browser to select a portion of text from a webpage to be the re-flowed, or re-laid out, across line boundaries at asubstantially larger scale factor. Such re-flowing of text isparticularly useful on displays having small screens, since it allowsselected Web text to be displayed with much larger fonts, while at thesame time allowing entire lines of such text to fit within such screens.This enables such lines to be read quickly, without the need torepeatedly horizontally scroll back and forth to read successive linesof such text.

[0902] Regardless of how high the resolution of a small screen displayis, the human eye can only see what it displays at a relatively largeresolution if the display is held relatively close. This aspect of theinvention enables Web text to be display wrapped across lines that fitwithin the width of a display at a relatively large scale factor. Forexample, it allows the user of a handheld computer with a four inchdiagonal screen to display text at a sufficiently large scale to be seenby a group of people who are standing five or six feet away. Similarlyit would allow a user to view text on cellphone or wristwatch sizeddisplay without having to hold them close to his or her face. It canalso be used with normal sized computer display screens to display Webtext to people who are at a relatively large distance from the screen,or who are visually impaired.

[0903]FIG. 129 provides a highly simplified pseudocode description ofprogramming 12900 that could be used by a client computer to redisplayWeb text according to this aspect of the invention.

[0904] It should be understood that this aspect of the invention is notlimited to use on client computers. In fact, with modification thisaspect of the invention can be used in viewing visual output generatedby applications other than Web browsers, such as in systems of the typedescribed below with regard FIGS. 140 and 141.

[0905] Many web pages are designed to have their text laid out indifferent columns, that is, in different horizontal positions relativeto such a layout. A web page can indicate such different desiredhorizontal displacements in multiple different ways, including the useof tables and frames. It is preferred that system used with the methodis capable of displaying a web pages text in such a multicolumn layoutthat reflects such indications of different desired horizontaldisplacements.

[0906] If the user selects an area of a web page layout for text re-flowin a single column at a new scale factor, function 12902 causes function12904 through 12908 to be performed.

[0907] In some embodiments of the invention such a selection is made bydragging a pointing device, such as the stylus 11902 shown in FIG. 130across the portion of the width of a web page that the user desires tohave re-flowed at a larger scale across the width of a display screen orwindow. This is similar to what was discussed above with regard to FIG.119, except that the method currently being discussed allows text to bere-flowed across line boundaries, letting a selected column of text bedisplayed with much larger fonts while at the same time allowing wholelines of such text fit within the screen.

[0908] Function 12904 of FIG. 129 selects all strings and correspondingunderlining (i.e., labeling of text as being a link) in the layout ofthe current web page that are substantially within the selected layoutarea.

[0909]FIG. 131 illustrates the top portion of the layout 10206A, similarto that shown in the bottom half of FIG. 117, of the web page shown inFIG. 130. In FIG. 131 the dashed rectangle 13102 represent the portionof the web page's layout corresponding to the column selected by theuser in FIG. 130.

[0910] In some embodiments of the invention, a string will be consideredto be within the selected area only if a substantial portion, such astwo-thirds or three-quarters of its length fits within the area selectedby the user. For example, in FIG. 130, the user intended to select thetext at the right hand portion of the screen displayed in that figure.However, in the example of FIG. 130 the user failed to exactly selectthe width of that intended column with the drag of the stylus.Nevertheless, because function 12904 selects all strings that aresubstantially within the selected area, the text re-flow will operate asif the user had selected exactly the intended column.

[0911]FIG. 132 illustrates an initial portion of the strings in thelayout of the web page shown in FIG. 131 that falls within the userselected area. In this figure, underlining indicates portions of textthat correspond to links.

[0912] Once all of the strings in the selected area have been selected,function 12906 labels any groups of one or more successive strings whosecloseness in the layout or other characteristics indicate they are partof the same paragraph. This is indicated in FIG. 132 by the paragraphbrackets 13202.

[0913] As indicated in FIG. 132, this method might not detect allgroupings of characters that are paragraphs, but it does detect many ofthem without the need to reference the HTML corresponding to the text.In the embodiment of the invention being described, such HTML is storedon the proxy server, meaning that such an access would require the delayassociated with communication between the client computer and a proxyserver. In other embodiments, particularly those in which the clientcomputer has a full browser resident upon it, or those having a highaccess bandwidth link to a proxy server, access to the HTML code couldbe used to more accurately determine how the selected strings should begrouped in paragraphs. In other embodiments, the layout informationdownloaded to a proxy server could contain any information aboutparagraph boundaries contained within a web pages HTML.

[0914] Once the selected strings have been grouped into paragraphs,function 12908 re-flows the text of each paragraph using the selectedexpanded scale factor across the width of the display screen (or displaywindow if the image is being shown on less than an entire displayscreen).

[0915] This text re-flow process is illustrated in FIG. 133, in whichthe strings in the top portion of FIG. 132 are laid out at a new scalefactor. In the example being shown, the text of FIG. 130 has beenselected to be re-flowed at twice its original size within the samescreen. Preferably the user interface of the thin client allows the userto select a plurality of different scale factors for use with theselected-text-reflow function, ranging from rather modest to ratherextreme increases in font size.

[0916] In FIG. 133 underlining is used to represent something differentthan it does in FIG. 132. In FIG. 133 the text on each line that camefrom a common layout string in FIG. 132 is shown with continuousunderlining. Underlining gaps between portions of text on the same linein FIG. 133 that come from different strings in FIGS. 132 areexaggerated to make their difference more readily visible. In FIG. 133all of the individual strings from the original layout shown in FIG. 132that have been wrapped across a line boundary are indicated by a arrowfrom their portion on one line to their following portion on the nextline.

[0917]FIG. 134 provides a schematic illustration of how the selectedstrings of the original layout shown in FIGS. 130 and 131 look once theyhave been re-flowed at approximate twice the size on the thin client'sscreen. As can be seen by looking at FIGS. 134, such a text re-flowmakes Web text much easier to view from a distance. Re-flowing the sametext at 4× or 6× instead of 2× would make it possible to show the sameweb content to people at quite a distance from the display screen.

[0918]FIGS. 135 through 137 illustrate another method that can allow auser to select a portion of text to be reflowed.

[0919]FIG. 135 illustrates a portion of a web page having a centralcolumn of text that has intruded into it one or more portions of othertext.

[0920]FIG. 136 illustrates how the user obtained a zoomed out view ofthe entire web page's layout. In many actual embodiments, text greekingwould be used to indicate portions of text too small to be representedin such zoom-out views as individual characters. Such a zoomed-out viewcould be generated quickly on thin client computers such as thosedescribed above with regard FIGS. 115 through 117 in which a web page'sentire layout was stored on the thin client, itself.

[0921] In FIG. 136 the user has selected a mode that allows her or himto define a polygon shaped area upon the zoomed-out web page view byclicking the display of the web page at corners in such an area. Oncethis is been done, the selected area will be used by the function 12904shown in FIG. 129 to select which text is to be re-flowed.

[0922]FIG. 137 illustrates how the selected text will appear once it hasbeen re-flowed and displayed.

[0923]FIGS. 138 and 139 provides more description of the font server 230described above with regard FIG. 2.

[0924]FIG. 138 corresponds to FIG. 2, except that in it there are aplurality of the client browsers 200, each of which accesses contentfrom one or more servers 220 through the same proxy server 210 and eachof which accesses fonts from the same font server 230.

[0925] This is because the software sold, licensed, or distributed foruse in each of the thin client browsers has been programmed to seekfonts such clients do not have from the same font server 230 and to makeWeb requests through the same proxy server 210. Of course, in otherembodiments of this aspect of the invention the thin clients could beprogrammed to select which of a common plurality of proxy servers to usebased on such factors as their geographic location, or their Internetservice provider. Similar considerations could be used by the thinclients to select from which of a common plurality of font servers theyare to request and receive fonts.

[0926]FIG. 139 provides a highly simplified pseudocode description ofprogramming 13900 that can be used on a font server of the typeillustrated in FIG. 138. This font server could also be used by normalbrowser computers, as well as by computers running applications otherthan Web browsers.

[0927] If the font server receives an HTTP request from a computer for acharacter of a particular font, function 13902 causes steps 13904through 13922 to be performed.

[0928] The particular embodiment of font server code shown in FIG. 139is designed for use with a protocol that specify each character desiredfor particular font at a particular size with a separate HTTP request.It specifies the desired font, font size, and character as part of a URLpathname. Of course, in other embodiments font servers could allow HTTPrequests to specify more than one font, and could specify fonts otherthan with URL pathnames.

[0929] In systems that request each character-font shapes separately, itis preferable that the HTTP protocol 1.1 or later be used, since itallows multiple HTTP request to be handled by a server from a givenclient computer without having to open and close a separate connectionfor the handling of each such request.

[0930] In the embodiment of the invention shown in FIG. 139, if the fontserver determines that it currently has stored a font bitmapcorresponding to the URL pathname specified in the request, function13904 causes function 13906 to send that font in an HTTP response to thenetwork address from which the URL request came, and then function 13908charges an account associated with the transaction. Such a downloadedfont could be either a font bitmap or a font outline description.

[0931] Such a charging of an account is not used in all embodiments ofthe invention. In some of those in which it is used, the account chargedis one associated with the computer to which the font is sent. In otherembodiments, the charge is to an account of a party associated with theweb page that included a specification for such fonts. In yet otherembodiments, the charge is to an account associated with a proxy serverof the type described above, or to a user of the services of such aproxy server.

[0932] If the requested font is not in the font server's storage and itis a bitmap for which the font server has a corresponding outline font,function 13910 causes function 13,912 through 13,922 to be performed.

[0933] Function 13912 generates a font bitmap having the attributes,such as size and possible transformation, indicated by the font pathnameof the HTTP request. This function includes determining if the requestedfont's pathname indicated that a subpixel-optimized version of the fontis desired. If so, function 13914 and 13916 generate asubpixel-optimized version of the font, preferably using the non-linearcolor balancing method described above with regard FIGS. 55 through 96.

[0934] Once the font bitmap has been created, function 13918 sends thebitmap over the network in an HTTP response to the requesting address.Function 13920 caches the font bitmap at an address corresponding to thepathname specified in the request. Function 13922 charges an accountassociated with the transaction, as discussed above with regard tofunction 13910, in embodiments where such charging is performed.

[0935]FIG. 140 illustrate that certain aspects of present invention canbe used to enable a thin client computer 200 to display digital contentcorresponding to the text and the images generated as screen output byone or more applications running on upon a remote computer 14000. Suchapplications can include Web browsers, spreadsheets, word processors,database programs, or virtually any other type of software capable ofgenerating screen displays.

[0936] The remote computer includes remote screen generator programming14006, which includes hooks in the dispatch table 14008 of the remotecomputer's operating system 14004. These hooks intercept calls made byone or more of the applications 14002 to the operating system to drawtext, shapes, lines, control objects, and bitmap's to a screen at agiven display resolution. In some embodiments, such draw commands willactually cause content to be displayed on a screen associated with aremote computer, in others there will be no screen at the remotecomputer, and thus such draw commands will be made to a virtual screen.In the text that follows, for purposes of simplicity, I will refer tothe video space to which these application thinks they are displayinggraphic output and receiving user input on a given client computer as avirtual screen.

[0937] When one of the applications 14002 request the operating systemto draw a display element, that call is intercepted by one of the hooksin the operating system's dispatch table, so as to make a correspondingcall to a corresponding routine 14010 of the remote screen generator. Ina manner similar to that described above with regard to FIGS. 102 and106A through 106C, this causes a download display list 10212A to becreated that is substantially similar to the display list 10212described above with regard to FIG. 102 and the figures that follow it.A zoom, scroll, and virtual layout control 1412, corresponding to thecontrols 10214 through 10218 shown in FIG. 102, controls the mapping ofthe thin client's view window into the virtual screen and, thus, thedisplay scale factor at which the elements drawn by an application intothe virtual screen are drawn and positioned in the download display last10212A. Preferably this includes subpixel optimization of image bitmaps,and font substitutions of the type described above with regard to FIGS.106A through 106C.

[0938] Once the download display list has been created for a givenvirtual screen, it is compressed and downloaded to the correspondingclient computer, which then draws it upon its screen in much the mannerdescribed above with regard to FIGS. 109A through 109C.

[0939] In some embodiments of the invention, individual draws to thevirtual screen will have corresponding draw commands downloaded to thethin client. This, can be used to speed the rate at which minor changesto the thin clients screen can be made in response to correspondingchanges to the virtual screen.

[0940] In the embodiment shown in FIG. 140, user input associated withscreen locations are uploaded to the remote computer from the thinclient, and they have their screen coordinates transformed to reflectthe mapping between the thin clients view window and virtual screen.Once this is done such events are placed in the event queue 14014 of theremote computers operating system with their transformed screencoordinates so the associated application 14002 will respond to thatevent as if it had been entered upon the remote computer's correspondingvirtual screen.

[0941] Many of the techniques used by screen sharing applications, suchas LapLink, sold by LapLink, Inc., 18912 North Creek Parkway, Suite 100,Bothell, Wash., U.S. Pat. No. 98011, or pcAnywhere, SymantecCorporation, 20330 Stevens Creek Blvd., Cupertino, Calif. 95014, can beused in conjunction with an embodiment of the invention of the typeshown in FIG. 140. In fact, when the remote computer in that figure hasits own screen, the embodiment shown in FIG. 140 can be used to performscreen sharing between the client computer and the remote computer.

[0942] It should be appreciated that in embodiments in which the clientcomputer has a reasonable amount of a computational power, the clientand the remote computers can operate in a peer-to-peer manner. Theremote computer can be a dedicated application server computer or it canbe any other type of computer, such as a personal computer, including adesktop computers, laptop computers, or tablet computers.

[0943]FIG. 141 illustrate an embodiment of the invention that issomewhat similar to that shown in FIG. 140, in that it uses hooks intothe dispatch table 14008 of a computer's operating system 14004 tointercept operating system calls made by one or more applications 14002in order to cause the screen displays generated by such applications tobe scaled-down and/or subpixel-optimized according to aspects of theinvention described above. It is different from the client-serverembodiment shown in FIG. 140, in that it is designed to run on onecomputer system 14100, shown in FIG. 141.

[0944] In the embodiment shown in FIG. 141, when an application makes acall to the operating system to draw an element to a screen, the hooksplaced in the OS dispatch table 14008 cause a corresponding draw routinewithin the programming 14010 of a scaled subpixel-optimized screengenerator program 14006A to be evoked. This substitute draw routinedraws a corresponding element to a virtual screen display list 10206B.It also causes any portions of such screen elements drawn into the partof the virtual screen that fits within a view window 10210C to beimmediately displayed on the display screen 10220A of the computer 14100by means of calling draw commands in the operating system, or bydirectly drawing to that screen themselves.

[0945] When an application program calls the operating system for ameasure string commands, that commands is likewise intercepted so thecall returns font metrics for a substituted font size in the mannerdescribed above with regard to functions 10608 through 10618 of FIG.106A.

[0946] A screen event input into the computer's screen is taken from theoperating system's event queue and passed to an event position scaler,which transforms the screen coordinates at which such an event wasgenerated on the screen into a corresponding position in the virtualscreen's layout represented by the display list, using the mapping ofthe view window into that virtual screen to control such atransformation. Once the coordinates of the event have beenappropriately transformed, the event is returned to the operating systemevent queue so the operating system will respond to the event as if ithave been entered onto the virtual screen.

[0947] An embodiment of the invention of the type shown in FIG. 141would allow a user of a computer to subpixel-optimizize, scaled-down,zoom, and perform selected text reflow upon screens generated bystandard computer applications 14002, even if they have not beendesigned to support such functions.

[0948] In other embodiments of the invention not shown, the operatingsystem of a computer can be modified to include functionality of thetype shown in the scaled, subpixel-optimized screen generator 14006Ashown in FIG. 141. In yet other embodiments of the invention,application programs 14002, including browser programs, can be modifiedto support all or much of such functionality directly.

[0949]FIG. 142 illustrates how the embodiment of the invention shown inFIGS. 102 and 140 can be used to allow thin client computers, such asthe thin client computers 200A through 200D shown in that figure, to beused to access Internet content or application programs over wirelessnetwork.

[0950] In this figure the computers 200A through 200D correspond to thethin client computer 200 shown in FIGS. 102 and 140. The computer 200Ais a handheld computer. The thin client computer 200B is a cellphone.The thin client computer 200C is a wristwatch computer. The thin clientcomputer 200D is a headmounted computer, or headmounted display for aportable computer. Each of these client computers can have a subpixeladdressable display.

[0951] At the time of the filing of this application it is currentlypossible to manufacture screens for each of these types of deviceshaving resolutions high enough for use by most aspects of the presentinventions. For example, at the current time it is possible tomanufacture a 320×240 color LCD display with a diagonal measurement of 2inches or less. Organic LED devices can currently be manufactured witheven higher resolutions. In the near future, the cost of such smallscreens should come down, and their availability and resolution shouldgo up.

[0952] All of the thin client computers shown in FIG. 142 have wirelesstransceivers that enable them to transmit and received information ofthe type described above with a remote proxy server computer 210 of thetype shown n FIG. 102 or a remote application server 14000 of the typeshown above with regard FIG. 140. Such transceivers can be wireless LANtransceivers for communicating with a wireless LAN transceiver 14204 ordigital cellular wireless transceivers for communicating with a wirelessInternet transceiver 14202, or preferably a transceiver that has beendesigned to communicate with both types of wireless transceivers. Inother embodiments, other types of wireless communication, such asBluetooth or infrared communication, can be used.

[0953] The remote computers 14000AA through 14000AC shown in FIG. 142correspond to the remote server computer 14000 shown in FIG. 140.

[0954] The remote application server computers 14000AA shown in FIG. 142represent laptop, desktop, server or other types of computers that canbe programmed to operate as a remote application server computer 14000.The subpixel-optimized application server 14000AB is a remote computerof the general type illustrated in FIG. 140 that is designed to runapplications for a plurality of thin client computers connected to a LANor WAN associated with such clients. The remote computers 14000AA and14000AB can communicate with thin clients over a private local areawireless transmitter 14204, or can communicate with them over thewireless Internet as indicated by the numerals 10222 and 14202.

[0955] The subpixel-optimized application server 14000AC is anapplication server similar to server 14000AB, except that it isconnected directly to the internet to allow multiple thin clientcomputers 200 to use applications over the Internet by means of thewireless transmission network indicated by the numeral 14202.

[0956] In FIG. 142 a proxy server 210, of the type described above withregard to FIG. 102, is shown connected to the LAN or WAN 14204. This,for example might be a proxy server intended to handle Web browsing thatthe Corporation wishes to keep off the Internet. It should be understoodthat other such proxy servers, such as those operated by companiesproviding commercial proxy serving services, would normally be connecteddirectly to the Internet 10222 shown in FIG. 142 as well.

[0957] The system illustrated in regard FIG. 142 allows small computersthat can be conveniently carried at virtually all times to access anddisplay web pages and the output of most application programs. At thetime of filing this application, the bandwidth of relatively inexpensivewireless LAN transceivers, such as the LAN transceiver 14204 shown inFIG. 142, is fast enough to allow thin clients of the type shown in FIG.142 to view web content or the output of application programs almost israpidly as one could view such digital content on a desktop computerconnected to a cable modem. And this is on a machine that can be carriedone's pocket, or on one's wrist, or as part of one's glasses, and thatcan be capable of accessing such media within several seconds afterbeing turned on.

[0958] At the digital cellular bandwidth commonly available in Americaat the time of filing this application, it will normally take severalseconds to download the entire text of the most web pages, and longer todownload the web page's images. Of course many embodiments of thepresent invention start to display text as soon as part of it isreceived, allowing the user starts to start seeing part of a downloadedpage very quickly.

[0959] As of this filing new, higher speed, digital cellular systemshave been developed that are capable of providing bandwidths in therange of hundreds of thousands or millions of bits per second. Once suchhigher speed systems become commonly deployed, users of the inventionwill be able to read and interact with web pages and application screenon small, portable devices, that can be used within seconds of beingturned on most places they travel, with almost as much speed andconvenience as if accessing them on a desktop or laptop through a DSL orcable modem connection.

[0960]FIGS. 143 and 144 provide two views of a handheld computer 200Acapable of functioning as a thin client for either proxy servers of thetype described above with regard to FIG. 102 or a remote applicationserver computer of the type described with regard to FIG. 140.

[0961] In FIG. 143, the computer is shown in the portrait orientation inwhich it has been designed for use. The native operating system on thecomputer is designed to draw fonts and graphical user interface elementsin this portrait orientation. This is the manner in which many of thehandheld computers sold at the time of the filing of this applicationhave been designed and built. For example, there are multiple suchhandheld computers on the market today that have subpixel addressablescreens with a 240×320 whole pixel resolution. Many of these computersalso have subpixel striping that runs in a horizontal direction when thedisplays are in their intended portrait orientation.

[0962] Unfortunately, such a portrait orientation does not provide thetype of landscape aspect ratio with which most people are used to usingcomputers, and for which most web pages have been designed. Furthermore,in the case where such computers have horizontal subpixel striping, suchstriping provide all of its potential increase in subpixel resolution inthe vertical direction. Unfortunately, the display of text tends tobenefit substantially more from an increase in horizontal resolutionthan it does from such an increase in vertical resolution.

[0963] For all these reasons, many embodiments of the invention that usesuch portrait-orientation machines are designed to use them when theyhave been rotated by 90 degrees, as shown in FIG. 144, so they will havea landscape aspect ratio more like that of the layout of most computerscreens, and so that their subpixels will provide an increase inhorizontal resolution that is most useful for displaying text.

[0964]FIG. 145 is a highly simplified pseudocode representation of howsome aspects of the present embodiments can be used to respond torequests to draw basic shapes—such as rectangles, ovals, lines, andcurves—using subpixel optimization. Such functionality can be used inapplications of many different types, in operating systems, and in thinclient software.

[0965] In the example of FIG. 145, the pseudocode shown relates to arectangle draw function 14500, that could, among other uses, be used inplace of the rectangle command 10918 described above with regard FIG.109A. Such a routine is evoked by a call to draw a rectangle that hasits position, width, and/or height defined at higher resolution than thewhole pixel resolution of a subpixel addressable screen on which is tobe shown. In response, the function 14502 uses a subpixel-optimizationroutine to render the image of the rectangle defined at such a higherresolution, at subpixel resolution. This can be done using virtually anysubpixel optimization scheme, but for monochrome rectangles a bicoloroptimization scheme, such as that described above will tend to providethe highest perceived spatial resolution.

[0966]FIG. 146 is a highly simplified pseudocode representation 14600 ofcode 14602 that operates on a server and/or proxy computer and code14604 that can be run on a client computer, including a thin clientcomputer, to allow applets downloaded from the server to drawsubpixel-optimized screen elements on the screen of the client.

[0967] In such an embodiment, a function 14606 of the client requestsmedia from the server. The server responds in function 14608 bydownloading media, or data, including one or more applet programs thatcan run on the client computer. In function 14610 the client computerreceives the media including the applets, and function 14612 loads andruns the applets. In function 14614 the applets draw subpixel-optimizedelements to the subpixel addressable screen on the client computer.

[0968] The applets can draw subpixel-optimized elements either bycopying or generating subpixel-optimized bitmaps, by rendering text withsubpixel-optimized fonts, or by drawing subpixel optimize shapes, suchas the shapes of vector defined graphics or relatively simple geometricshapes, such as lines, rectangles, and ovals.

[0969]FIGS. 147 and 148 illustrate how subpixel optimization can beapplied to rollover images and GIFF animations, respectively.

[0970] In the subpixel optimization routine 14700 shown in FIG. 147,both a non-rollover image 14702, which is to be displayed when apointing device is not detectably over the portion of the screenassociated with the images, and a rollover image 14704, which isdisplayed when the pointing device is detectably over that screenportion, are both downscaled and subpixel-optimized by a function 14706.This produces a scaled subpixel-optimized non-rollover image 14708 and ascaled subpixel-optimized rollover image 14710. Then a function 14712 isused to select which of these two subpixel-optimized images is displayedbased on whether the pointer is detectably over their associated screenarea or not. This makes the two subpixel-optimized images act as acombined “rollover” graphic.

[0971] In other embodiments of this aspect of the invention, a similartechnique could be applied to two images that are associated with abutton, one displayed when the button is not being pressed, and anotherdisplayed when the button is pressed.

[0972] The method 14800 shown in FIG. 148 is similar to that describedabove with regard FIG. 147. It takes each separate image 14802 through148906 of a GIFF animations and subpixel-optimizes it in a function14808 to produce a corresponding set of scaled-down, subpixel-optimizedGIFF animations images. Then function 14816 displays thesubpixel-optimized images in substantially the same manner thatnon-subpixel-optimized GIFF animations are displayed.

[0973] The subpixel optimizations described with regard to FIGS. 147 and148 can be used with other aspects of the invention described above,including in the accessing of web pages on a subpixel addressablescreen, including those on thin client computers.

[0974]FIG. 149 illustrates a method 14900 for subpixel optimizing 3-Danimation. This method includes performing a set of functions 14904through 14908 for each successive frame of the animation.

[0975] Function 14904 runs a 3-D animation engine to create a bitmap ofthe current frame, or at least of those portions of the image that havechanged since the last frame. This function generates such bitmaps at aresolution higher than the whole-pixel resolution at which thesubpixel-optimized version of such bitmaps are to be displayed.

[0976] Function 14906 then uses techniques, such as those describedabove, for scaling down and subpixel optimizing the frame bitmap, or atleast changes made in the frame bitmap since the last frame.

[0977] Next, function 14908 displays the scaled-down, subpixel-optimizedimage of the frame bitmap, or at least of the changed portion of theframe, on a subpixel addressable screen.

[0978] The method shown in FIG. 149 can be particular useful to allowpeople to play games, and see the images produced by such games at thehigher resolution made possible by subpixel optimization. It can be usedfor such purpose on small screen, handheld devices. It can be used bothwith client computers displaying animated images generated on a remotecomputer, as well as with computers that are generating such animatedimages locally.

[0979]FIGS. 150 and 151 illustrates one way in which the method of FIG.149 can be used in a client server gaming application.

[0980]FIG. 150 illustrates programming 15000 on a game server computerused in such an embodiment. As indicated by the numeral 15002 and 15004,if the game server receives user input from one or more game clientcomputers it sends input to the game engine. If such input is screeninput, it is scaled appropriately to compensate for the differencebetween the user's screen resolution and the space that the game engineassociates with screen inputs.

[0981] In function 15006 the game engine computer computes a displaylist for the current frame, or for any changes associated with thecurrent frame to a prior display list. Then function 15008 has a 3-Drendering program render a frame bitmap corresponding to the displaylist generated for the current frame, or render the changes required tothe bitmap of the current frame. Such bitmaps are generated at a higherresolution than that of the subpixel-optimized images that are to becreated by the function 15010.

[0982] If the client is generating different screen images for differentclients, the function 15008 would be performed separately for each ofthose separate views.

[0983] Next function 15010 scales down and subpixel optimizes thecurrent frame bitmap or the bitmaps of current changes to the frame.When the function is scaling down only bitmaps of such changes it alsocorrespondingly scales down the screen positions associated with thosechanges.

[0984] Next function 15012 compresses the subpixel-optimized bitmaps,and if appropriate, their locations, and function 15014 downloads thecompressed, scaled, subpixel-optimized images and any such locations tothe client for display.

[0985]FIG. 151 illustrates programming 15100 on a game client designedfor use with a programming of FIG. 150.

[0986] Function 15101 receives downloaded images, then function 15102decompresses them. Next function 15104 displays the scaled,subpixel-optimized animation frame bitmaps, or it displays bitmap ofchanges over the image of the prior animation screen at the locationsindicated for those changes. This is done on a subpixel addressabledisplay.

[0987] As indicated by numeral 15106 and 15108, when the client receivesuser input, it uploads that input to the game server with any screencoordinates associated with those inputs being appropriately translated.

[0988] In other embodiments of this aspect of the invention thedistribution of functionality between the game server and the gameclient could be different. In some embodiments, a proxy server generallysimilar to that described above could be used to perform the subpixeloptimization for display on a thin client of game content originallygenerated on a game server that is different than the proxy server. Inyet other embodiments the game client could itself perform the subpixeloptimization.

[0989]FIG. 152 is a highly simplified pseudocode description of anaspect of the invention that allows images having associatedtransparency maps to be displayed with the subpixel optimization of boththeir foreground image and transparency map

[0990] The programming 15200 shown in FIG. 152 includes a function 15202that produces a scaled subpixel-optimized bitmap of a foreground image,that is an image, the display of which on top of a background or otherprior bitmap is to be controlled by an associated transparency bitmap.The subpixel optimization used can be either a bicolor or a multicolorsubpixel optimization, or a combination of the two. Any method known forproducing subpixel-optimized representations of images could be used,including those that have been described above.

[0991] Function 15204 produces a subpixel optimization of the image'sassociated transparency map. Preferably a bicolor subpixel optimizationis used, since a high resolution source image of a transparency map hastransparency values that vary along a straight line in 3-component colorspace, that of an alpha value ranging from 0 to 1. Such source imagealpha values correspond to grayscale colors because, if the area of thetransparency map source image corresponding to a given pixel in thesubpixel-optimized output image of that map is covered by a uniformtransparency value, all of that output pixel's subpixels will tend tohave equal alpha values. Preferably the bicolor subpixel optimization ofthe transparency map is created using the non-linear color balancingdescribed above.

[0992] Once such a subpixel optimization of a foreground image and itsassociated transparency map has been created, function 15206 displaysthis combination on a subpixel-optimized display. This process includesperforming a loop 15208 for each pixel row of the displayed image, whichincludes a loop 15210 for each subpixel of each such row. The function15210 causes function 15212 and 15214 to be performed for each subpixel.The function 15212 sets the current alpha value to the alpha value ofthe corresponding subpixel of the subpixel-optimized transparency map.Then function 15214 sets the luminosity of the current subpixel to thecurrent alpha value multiplied by the luminosity of the correspondingsubpixel of the subpixel-optimized foreground image plus the priorluminosity value of the current subpixel in the background bitmap overwhich the transparency image is being drawn multiplied by one minus thecurrent alpha value.

[0993] This means that if the foreground image is drawn over a priorbitmap, the extent to which luminosity of each of its separatesubpixel's is derived from the corresponding subpixel value of theforeground image, or of the prior bitmap is determined as a function ofthe corresponding subpixel alpha value of the subpixel-optimizedtransparency map.

[0994] In some embodiments of the invention, images with associatedtransparency maps will be scaled and subpixel-optimized on a server orbrowser computer, downloaded, and then displayed by function 15206 on aclient computer. In other embodiments of the invention, suchsubpixel-optimized transparency images will be made available onrecorded digital media. In yet other embodiments of the invention theywill be generated by the same computer that displays them.

[0995] In other embodiments of the invention subpixel-optimizedforeground images could be displayed using alpha values contained in anon-subpixel-optimized transparency map.

[0996] In some embodiments of the invention lossy color compression willbe used to represent groups of colors that are perceptually close withone color. Such compression can be performed upon one dimentionaltransparency values, upon three dimensional transparency (i.e., opacityor alpha) values of the type described above with regard to FIGS. 60,96, and 97, or upon color values having a transparency component valueas an extra color dimension, as well as upon RGB component values. Insuch compressions, it is generally advisable to prevent transparencyvalues or component color values representing an alpha one or zero, orvalues very close to one or zero, from being represented by transparencyvalues further from one or zero, respectively. This is because the eyeis more sensitive to slight changes in opacity at the extremes of thetransparency range than it is to such changes elsewhere in that range.

[0997] Subpixel-optimized images with transparency maps can be used onsubpixel optimize displays for all the purposes for whichnon-subpixel-optimized images are used with transparency maps. Thisincludes use in animations and in web page layouts.

[0998]FIGS. 153 through 162 are highly simplified pseudocodedescriptions of aspects of the invention relating to subpixeloptimization of video and/or animation. Such subpixel optimization canbe used in the context of Web browsing as well as in virtually any othercontext in which video and animations is used.

[0999]FIG. 153 represents programming 15300 used to subpixel optimizevideo represented using interpolation between video key frames. Thisprogramming includes a function 15302 that is used in the case where thevideo to be subpixel-optimized is received in compressed format. Itdecompresses such video, so it can be subpixel-optimized.

[1000] Function 15304 scales down and subpixel optimizes the keyframesof the video. Function 15306 scales down, but does not subpixel optimizeinterpolated changes between keyframes. In some embodiments of theaspect of invention shown in FIG. 153, such interpolation changes couldbe subpixel-optimized, but there is little benefit from doing so, sincesuch changes appear so rapidly on a screen that their subpixeloptimization would not be noticeable, and avoiding their subpixeloptimization reduces computational overhead.

[1001] Then function 15308 displays the scaled down video on a subpixeladdressable display with the subpixel-optimized keyframes and the nonsubpixel optimize interframe interpolation.

[1002] In other embodiments of the invention, this concept of onlysubpixel optimizing portions of video that will be on the screen at onelocation long enough to be clearly perceived could be used in otherways.

[1003]FIG. 154 illustrates programming that can be used to subpixeloptimize video represented totally or partially by sequences ofsub-whole-frame image elements that are to be drawn to a display frame.Commonly such video will also include whole frame images, and will use asequence of sub-whole-frame draws to incrementally changes screen asneeded to represent motion of one or more objects within it. This wouldinclude animation of the type described above with regard FIG. 149. Itcan also include various forms of video compression, including videohaving keyframes and interframe interpolation of the general typedescribed above with regard FIG. 153.

[1004] The programming of FIG. 154 includes a function 15402 used wherethe video to be subpixel-optimized is received in compressed format, inwhich case that function decompresses it. Next function 15404 scales andsubpixel optimizes any frame images contained in the video, scaling themdown by a display scale factor. Then function 15406 scales and subpixeloptimizes any change bitmaps, scaling both the size of such images andtheir location by the scale factor.

[1005] Functions 15407 and 15408 repeatedly display on a subpixeladdressable screen any scaled subpixel-optimized video frame in thevideo sequence. After the display of such a video frame it displays anyof one or more scaled, subpixel-optimized change bitmaps over the bitmapof that frame at the scaled position associated with that change bitmapby the function 15406.

[1006] It can be seen that the method of FIG. 154 enablessubpixel-optimized video and animation to be drawn in a manner thatreduces the amount computation required for subpixel optimization, sinceit does not require the subpixel optimization of an entire frame eachtime a change is made to its video image.

[1007]FIGS. 155 and 156 illustrate two different methods in whichsubpixel-optimized images that move relative to a frame can bedisplayed.

[1008]FIG. 155 includes programming 15500 that displays an image withfixed subpixelation as it moves in whole pixel increments relative to. alarger image on a subpixel addressable display. It includes a function15502 that stores a subpixel-optimized image, which can be produced byany method, including those described above. It includes a loop 15503performed for each successive frame time. This loop comprises thefunction 15504 and 15506. The function 15504 calculates a movement forthe image relative to the larger image. In this movement calculation theposition calculated for the object at each display frame is rounded tothe nearest whole horizontal and vertical pixel location and the sizeand orientation of the image is not altered. The function 15506 displaysthe image at the whole pixel resolution location calculated for it bythe function 15504. Since only one subpixel-optimized bitmap of theimage has to be calculated, and that single image is repeatedly used asit moves across the screen, this method is quite computationallyefficient.

[1009]FIG. 156 describes programming 15600 that displays a moving imagewith changing subpixelation. It includes a function 15602, which storesa high resolution source image of the image to be moved. It alsoincludes a loop 15603 performed for each successive frame time. Thisloop includes a function 15604, which calculates the currenttranslation, rotation, and/or transformation of the high resolutionsource image, if any for the current frame. Then the loop's function15606 generates a scaled-down, subpixel-optimized bitmap of thetranslated, rotated, and/or transformed bitmap so produced. Thissubpixel optimization takes into account the location of thistransformed bitmap relative to the subpixel array upon which it will bedisplayed at a resolution higher than whole pixel resolution. Thenfunction 15608 of the frame loop displays the resultingsubpixel-optimized bitmap on a subpixel addressable display.

[1010] Either of the methods described above with regard FIG. 155 or 156can be used to display sprites in game animation, as well as animatedtext, or any other type of visual representation that is moved relativeto a larger frame.

[1011] The method of FIG. 155 tends to provide a less accuraterepresentation of the motion of the visual object, but it is morecomputationally efficient. The method of FIG. 156 provides a moreaccurate visual representation, but is more computationally expensive.

[1012] In some embodiments of the invention a combination of these twomethods could be used. For example, a small subset of possible mappingsbetween the object and a subpixel array can be stored, and as the objectmoves it is displayed with that one of such stored mappings that mostclosely represents a higher resolution representation of its currentlocation relative to the subpixel array upon which it is to bedisplayed.

[1013]FIGS. 157 and 158 illustrates aspects of the present inventionused to optimize the display of DVD or an HDTV video by downscaling andsubpixel optimizing such video for display on a subpixel addressablescreen. This is particularly useful when used in conjunction withsubpixel addressable screens that have a higher subpixel resolution inthe horizontal direction than they do in the vertical direction, becauseboth DVD an HDTV video commonly has an aspect ratio substantially widerthan it is high.

[1014]FIG. 159 illustrates aspects of the invention that can be appliedto video formats that represent subcomponents of video images asseparate objects having different attributes. The particular example inFIG. 159 involves programming 15900 that subpixel optimizes the displayof MPEG-4 video.

[1015] The programming shown in FIG. 159 includes a function 15902 thatreceives and decompresses an MPEG-4 video. It includes functions 15904and 15906 that use different subpixel optimization methods when scalingdown different types of objects in the MPEG-4 video. This function usesbicolor subpixel optimization, preferably with nonlinear colorbalancing, on bicolor objects, and it uses multicolor subpixeloptimization on multicolor objects. It's function 15908 displays acombination of the bicolor and multicolor objects on asubpixel-optimized screen, moving such subpixel-optimized objectsrelative to the screen as dictated by the MPEG-4 description, usingmethods of the type discussed above with regard to FIGS. 155 and/or 156.

[1016] Some aspects of the invention are not limited to such use ofdifferent subpixel optimizing algorithms for different object types inthe MPEG-4 data stream. But the use of such different subpixeloptimizing algorithms can provide higher perceived resolution forbicolor objects, such as text, and thus has the advantage of providing asomewhat better image.

[1017]FIGS. 160 and 161 relate to systems in which users accesssubpixel-optimized video over a computer network.

[1018]FIG. 160 illustrates programming 16000 used by a server computerthat serves subpixel-optimized, scaled down, video. Such a server couldbe a proxy server that accesses video requested by the client from yetanother server computer and then downscales and subpixel optimizes itbefore downloading to the client. In other embodiments, the serving ofsuch subpixel-optimized video is performed without such an intermediaryproxy server.

[1019] The programming of FIG. 160 includes a function 16002 thatreceives a request for certain video from a client computer. In manyembodiments, such as the one shown in FIG. 160, the request will alsodescribe the horizontal and vertical subpixel resolution for which thevideo is to be subpixel-optimized. In embodiments in which the server isonly serving a set of clients having one fixed subpixel resolution, suchinformation is not needed as part of the request.

[1020] The function 16004 receives the requested video content. This canbe done by accessing it from a remote server, as described above; byaccessing it from RAM or a mass storage device associated with theserving computer; by having such content dynamically generated; or byselecting a video fed from some source.

[1021] Function 16006 scales down and subpixel optimizes the receivedvideo to the subpixel resolution associated with the request of function16002. Then function 16008 compresses the subpixel-optimized video andfunction 16010 download that compressed video to the requesting device.

[1022] The compression algorithm used for such subpixel-optimized imagescan include one which has a certain amount of loss without substantiallydecreasing the increased spatial resolution made possible by subpixeloptimization, as long as the location of the color values associatedwith any pixel in such subpixel-optimized images are not moved in RGBcolor space by more than a relatively limited color distance.

[1023]FIG. 161 describes a system 16100 that can be used with the aspectof the invention described in FIG. 160. This system includes proxycomputer code 16100 and thin client computer code 16112, both of whichare illustrated by highly simplified pseudocode in FIG. 161.

[1024] When the thin client receives a user request for certain video,function 16113 responds by sending a request for the video, includingthe subpixel resolution at which the video is to be displayed to theproxy. When the proxy receives the request for such video its function16100 causes function 16103 to send a corresponding request for thevideo to a server from which it can be obtained. In many embodimentsthis will be a server identified in the URL of such a request.

[1025] When requested video is received by the proxy server, function16104 causes function 16106 through 16110 to be performed. Function16106 scales down and subpixel optimizes the video to the subpixelresolution associated with its request from the client; function 16108compresses that subpixel-optimized video; and function 16110 downloadsit to the client that has requested it.

[1026] When the client receives the requested video from the proxy,function 16114 causes function 16115 to decompress it, and function16116 to display the downscaled, decompressed video on a subpixeladdressable display.

[1027]FIGS. 162 through 166 are used to illustrate how aspects of theinvention can be used to improve the appearance of digital ink. Digitalink is usually a black and white bitmap drawn on a screen in response toa user attempting to write or draw with his or her pointing device. Inthe past, digital ink bitmaps have usually been represented at a wholepixel resolution in which each pixel is shown as either black, white, orin some devices a grayscale value.

[1028] One aspect of the invention is the use of subpixel optimizationto represent digital ink with a higher resolution. When digital ink thatis represented within the computer's memory by points and lines orcurves between such points, the resulting mathematical description ofthe lines between such points can have a much higher resolution than thewhole pixel resolution of the screen.

[1029]FIG. 162 is a highly simplified pseudocode description ofprogramming that can be used to optimize the clarity with which digitalink can be viewed.

[1030] The digital ink code 16200 shown in FIG. 162 includes a function16202 that responds to user input with a pointing device while indigital ink draw mode, by recording the strokes of the pointing deviceas a series of points and curve or lines between such points. Function16206 draws ink on the screen using a subpixel optimization of the linesand curves. This can be done with virtually any subpixel optimizationscheme, but it is preferrably done with a bicolor subpixel optimizationscheme, such, as for example, a bicolor subpixel optimization schemeusing non-linear color balancing.

[1031]FIG. 163 illustrates some digital ink 16302 that has been drawn onthe screen of a handheld computer 16300. Because this illustration isprinted with a printer that can only represent whole pixel luminosityvalues, the digital ink illustrated in FIG. 163 displays subpixeloptimization as grayscale anti-aliasing. It to be appreciated that whenviewed on a subpixel addressable display the image would appear evenmore clear than shown in FIG. 163.

[1032] If the user of the digital ink programming selects to scale up arepresentation of a portion of digital ink, function 16208 causesfunction 16212 to produce a subpixel-optimized bitmap of the digital inklines and curves, using a bicolor subpixel optimization with non-linearcolor balancing, at the user selected scaled-up size. Then function16212 displays that scaled-up image on the users screen.

[1033]FIG. 164 illustrates a scaled-up representation 16302A of theportion of digital ink 16302 shown in FIG. 163. This provides asubstantially more clear representation of the digital ink, than isproduced by merely blowing up the pixelation of the digital ink'srepresentation 16302 shown in FIG. 163, as is illustrated by the bitmap16302B shown in FIG. 165.

[1034] It should be noted that the bitmap shown in FIG. 165 is actuallymore pleasant to look at than some scaled-up representations of digitalink because the bitmap shown in FIG. 163 has been printed with wholepixel grayscale values with anti-aliasing, which is not used in somedigital ink representations.

[1035] If the user selects to scale down the representation of digitalink, function 16214 causes function 16216 to produce asubpixel-optimized bitmap of the ink's lines and curves using bicolorsubpixel optimization with non-linear color balancing at the selectedscaled-down size, and then causes function 16218 to display thatscaled-down bitmap on the subpixel addressable display. The results ofsuch a process is illustrated by the bitmap 16302C shown in FIG. 166.

[1036] These aspects of the invention can be modified to deal withdigital ink that has been recorded as whole pixels that are either on oroff. This can be done by having a routine estimate a centerline of eachstroke represented by such “on” pixels, and then producing a subpixeloptimize image of the digital ink's centerline at various scales asdescribed above. A more accurate but more computationally expensiveapproach would be to seek an optimal fit between successive portions ofsuch digital ink and a corresponding succession of lines and curves,such as, for example Bezier curves.

[1037] In other embodiments, subpixel optimization could be performed onbitmaps that have been produced by digital ink drawing by merelyperforming subpixel-optimized scale ups or scale downs upon suchbitmaps.

[1038] Some embodiments of the invention that relate to digital inkcould be used with non subpixel-optimized displays, by replacingsubpixel optimization with grayscale anti-aliasing.

[1039]FIG. 167 illustrates physical components that can be included inmany of the server, client, proxy server, thin client, remote, desktop,or other computers referred to above. It should be understood that notall of the components shown in FIG. 167 will be in all such computers,and most such computers will include other components besides thoseshown in FIG. 167.

[1040] This figure is provided to make clear that most of the computersused with various aspects of the present invention include some type ofprocessor 16716 capable of executing programming 16702 to cause it toperform the functions of such aspects of the invention and to read andwrite data 16704 according to the methods of such aspects. The presentinvention relates to not only to methods but also to such computerprogramming and data, as well as to computer systems that have beenprogrammed and/or hardwired to perform such methods or to use such data.

[1041] In most such computers the invention's programming will be storedin RAM 16706; ROM 16707; or a mass storage device such as a hard drive16708, floppy drive 16709, CD-ROM drive 16711, and/or DVD drive 16713.It can also be stored in machine-readable media, such as on a floppydisks 16710, CD ROMs 16712, DVD ROMs 16714, or virtually any other typeof machine readable storage media. The invention's programming and/ordata can also be the represented as propagated signals indicated by thenumeral 16719 that can be received by the computer through some sort ofcommunication port, such as the network interface 16720.

[1042]FIG. 168 provides a whole-pixel grayscale representation of a 320by 240 screen showing a small subpixel-optimized font produced using thenon-linear color-balance method described above with regard to FIGS. 60through 97. This figure is identical to FIG. 56 except that a portion ofits text is encircled by dotted lines 16800.

[1043]FIG. 169 is an eight times blowup of the portion of the bitmapshown in FIG. 168 within the dotted lines 16800. It shows that most ofthe vertical strokes in the font shown in FIG. 168 contain color-balancedistributions one their left hand side that blur the clarity of suchfonts.

[1044] One of the major benefits of the non-linear color-balancingmethod of producing subpixel optimized font bitmaps is its ability todecrease the blurring of character-font shapes by the non-linear methodwith which it seeks to substantially prevent the distribution of colorbalancing values where it is not needed for color balance.

[1045] Upon observing the spreading of color values to the left of themain strokes of fonts of the type shown in FIG. 169, the inventor ofthis aspect of the invention sought to see if such spreading could bereduced. He tried to determine what the source of such spreading was.

[1046] Referring now to FIG. 170, he found that the algorithm used forcreating non-linear color-balanced bitmaps was designed to automaticallyplace two padding columns of subpixels 17000 to the left of the leftmostsubpixel column 17002 in the rasterization of a character-font shapethat included an actual non-zero coverage value 17004 (i.e., wasactually covered by a portion of the character-font shape beingrepresented by the rasterization). This was done to provide room for thespreading of color balancing color values into the two subpixel columnto the left of the leftmost subpixel column containing such a non-zerocoverage value, if such a leftward spreading was required by thenon-linear color balancing algorithm, described above, which allowscolor balancing distribution two pixel to the left of a totally orpartially covered subpixel.

[1047] Unfortunately padding the rasterization subpixel array with onlytwo such subpixel columns 17000 tends to have the undesirable effect ofmaking the leftmost subpixel column 17002 that contains such a coveragevalue be the rightmost subpixel column of the pixel column containingthe two padding subpixel columns. In an RGB display this would cause theleftmost subpixel column containing an actual coverage value tocorrespond to a blue subpixel.

[1048] This is undesirable because it tends to cause pixels in theleftmost pixel column in a font bitmap to contain two leftmost subpixelsthat have no actual coverage value and a rightmost subpixel that doesinclude a non-zero coverage value, requiring that non-zero coveragevalue to be distributed to achieve color balancing. This is a reason formuch of the leftward blurring of major vertical strokes shown in FIG.169.

[1049] The inventor noted that character-font shapes hinted with systemsthat allowed boundaries of vertical strokes to be positioned inincrements finer than the width of a subpixel column had often beendesigned by the individuals who hinted them to start the leftmost edgeof their leftmost vertical stroke, such as the edge 17100 shown in FIG.171 only a slight distance into the leftmost subpixel column containingnon-zero coverage values 17002. This would substantially reduce theamount of the non-zero coverage value contained within the subpixelcolumn 17002 that had to be distributed by non-linear color balancing,thus greatly reducing undesirable blurring in the subpixel optimizedrepresentation of the character.

[1050] For example, the inventors found that many of the best hintingcombinations, when used with such algorithm, cause the first verticalstrokes of a character, such as the vertical strokes 17102 shown in FIG.171 to have its leftmost edge slightly into one subpixel column, withtotal coverage in three successive subpixel column to the right, so asto cause the second leftmost pixel column 17103 in the resulting bitmapto have one or more pixels totally covered so as to require nocolor-balance spreading.

[1051] In such an optimized hinting process, subsequent vertical strokeswould be aligned to cover three adjacent subpixel column starting at adistance of three, six, or nine subpixel column from the rightmost edgeof the first vertical stroke. This would cause the subsequent verticalstrokes, such as the vertical strokes 17104 and 17106 shown FIG. 171, tohave multiple pixels that are totally covered, so as to require no colorbalancing.

[1052] Although fonts of the type shown in FIGS. 168 to 171 are morereadable than most subpixel-optimized font bitmaps produced by prior artmethod, as a result of these investigations the inventor has figured howto produce even more clear subpixel optimized font, as shown in FIGS.172 through 174.

[1053]FIG. 172 shows a whole-pixel grayscale bitmap representing asubpixel-optimized 320 by 240 pixel display of a web page of the typeshown in FIG. 168, except that it uses a new, more clear method forproducing and displaying font bitmaps.

[1054]FIG. 173 shows a four times blowup of the portion of FIG. 172shown in the dotted box numbered 17200.

[1055]FIG. 174 shows a further four times blowup of the portion of textshown in the dotted lines 17300 in FIG. 173.

[1056] As can be seen from looking at FIGS. 172 through 174, there isrelatively little horizontal spreading of color values from many of thevertical strokes contained in the font bitmaps shown in those figures.It should be noted that the uniform light gray background in FIGS. 173and 174 results because the text in those figures was taken from aportion of the web page of FIG. 172 that had a background color, notbecause of any spreading due to color balancing. The fonts shown inthese figures are substantially more clear than those shown in FIGS. 168and 169.

[1057] The inventor has made this improvement by aligning the leftmostedge of a character's leftmost vertical stroke with the left edge of apixel boundary. In many embodiments this is done by inserting threepadding subpixel column 17500, shown in FIG. 175 before the leftmostsubpixel column that contains a non-zero coverage values. Thisautomatically aligns the leftmost rasterization unit (i.e., subpixel)all or partially covered by a character's outline with the leftmost edgeof a pixel column. If a characters is hinted so its leftmost outlineedge is aligned with the leftmost edge of a rasterization unit, thiswill automatically cause that leftmost outline edge to be aligned withthe leftmost edge of a pixel in the resulting font bitmap. When theleftmost edge of a font outline is a vertical stroke this makes it veryeasy to create a font bitmap that has clear leftmost vertical edge, evenafter non-linear color balancing.

[1058]FIG. 176 shows one of many possible hinting interfaces that can beused with the present invention. In this hinting interface the dottedlines 17602 is a line that can be moved by the user to interactivelydefine the left side bearing for a desired character. The dotted line17604 is a movable line that defines the right side bearing. The leftside bearing is the distance between the initial reference point,sometimes called the pen position, relative to which a character is tobe drawn and the leftmost edge of the bitmap of the character beingdrawn. The line 17604 corresponds to the location relative to the bitmapat which the pen position will normally be placed at the start of thedrawing of the next successive character along a line of text. The rightside bearing is the distance between the line 17604 and the rightmostedge of the bitmap of the character being drawn. The advance width isdefined as the distance between the lines 17604 and 17602. Thisrepresents the normal total width between pen positions before and afterthe drawing of a character's bitmap. In some embodiments, the left sidebearing value and the advance width are rounded to whole multiples ofpixel widths, although in other embodiments this need not be true. Insome cases, the left and/or right side bearing values can be negative.For example this often happens with italic fonts in which the bitmapsassociated with successive characters often overlaps portions of eachother's advance width.

[1059] Each of the small rectangular dots 17606 shown in FIG. 176correspond to the center of a rasterization unit, which, insubpixel-optimized font bitmaps, correspond to an individual subpixel.In this particular hinting interface rasterization units more than halfcovered by a character-font shape's outline are shown in black, althoughin more advanced interfaces such rasterization units could be shown withgrayscale coverage values. The character-font shape's outlines are shownin the figure and each point that defines a segment in the outline isnumbered, whether it be a control point or a segment endpoint.

[1060]FIGS. 177 through 181 are used to help explain some of the stepsdescribed in the highly simplified pseudocode contained in FIG. 182.

[1061]FIG. 182 is a highly simplified pseudocode description ofprogramming 6000A, which corresponds generally to the pseudocode shownin FIG. 60, except that the pseudocode shown in FIG. 182 focuses oncomputational aspects that relate to the improved method of producingmore clear nonlinearly color-balanced subpixel-optimized bitmapsdescribed above with regard to FIGS. 172 and 176.

[1062] The pseudocode includes a function 18202, which determines thetightest rectangular array of rasterization units into which acharacter-font shapes can be placed, taking into account the alignmentof its shape relative to such rasterization units defined by itshinting.

[1063] The position of the font outline relative to the individualrasterization units in which it occurs is not changed by this function.Thus, if such an outline's leftmost point occurs other than at the leftedge of the rasterization unit it is in, that rasterization unit willappear at the leftmost edge of the tightest rectangular array producedby function 18202, and the leftmost point of that outline would occurwithin the leftmost rasterization unit column of that rectangle, but itwould not occur at the leftmost edge of that leftmost column.

[1064]FIGS. 177 and 178 are used to help explain this function. FIG. 177corresponds to a hinted character-font shape outline. FIG. 178 shows therectangle of rasterization units (each corresponding in size to asubpixel) returned by function 18202 for the character outline shown inFIG. 177. This grid corresponds to the tightest, or smallest, rectangleinto which the rasterization unit containing the character font shapefits.

[1065] Once the function 18202 has been completed, functions 6002Athrough 6006 are performed. These correspond to steps 6002 through 6006of FIG. 60. They are used to determine a coverage value for eachrasterization unit contained in the rectangle returned by function18202. Each such coverage value represents the percent of the subpixelcovered by the higher resolution character-font shape outline beingrasterized.

[1066]FIG. 179 illustrates the coverage values calculated for eachrasterization unit in the array shown in FIG. 178. In it coverage isrepresented by the percent of the rasterization unit that is coloredblack. In FIG. 179 the portion of the resulting bargraph in eachrasterization unit representing coverage is placed at the top of thatunit if the corresponding part of the unit covered by the character-fontshape outline occurs at the top of the rasterization unit.

[1067] In FIG. 180 the bargraphs for all individual rasterization unitsare placed starting at the bottom of the corresponding subpixel unit, soas to make them correspond more closely with the representation ofcoverage values shown in FIGS. 46 through 52 and 92 through 93,described above.

[1068] Once the character-font shape has been rasterized, step 18204maps the resulting array of subpixel coverage values into an array ofsubpixel-addressable pixels. It does so aligning the first column ofrasterization units in the tight rectangle described above with theleftmost subpixel of a pixel row. This causes the leftmost column ofrasterization units that have a nonzero coverage value to be placed as aleftmost subpixel column in a whole pixel as described above with regardto FIG. 175. In the example illustrated in FIGS. 177 through 181, thiscauses the resulting subpixel array to appear as shown in the set ofcentral pixel columns labeled 18102 in FIG. 181.

[1069] Next a step 18206 pads the bitmap array being created for thecurrent character with a pixel column comprised of three subpixel's tothe left of the pixel containing the leftmost subpixel column containingan actual nonzero coverage value. This causes the subpixel array in theexample to appear as shown by the combination of pixel columns 18104 and18102 in FIG. 181.

[1070] Next a step 18208 pads the bitmap array with two or more subpixelcolumns to its right, so as to cause the total number of subpixelcolumns of the bitmap to be an even multiple of three, that is to be aneven number of whole pixel columns. This causes the example subpixelarray to appear as shown by the combination of pixel columns 18104,18102, and 18106 in FIG. 181.

[1071] Step 18210 adjusts the left and right side bearing value tocompensate for the addition of the padding pixel columns. Thus, forexample, a bitmap that would otherwise have a left side bearing of onepixel width would be changed to have a left side bearing of zero tocompensate for the addition of the left side padding column. Similarly abitmap that had and extra pixel column added to its right side woulddecrease its right side bearing by one pixel width.

[1072] Next function 18212 performs non-linear color balancing, which inmany embodiments will correspond to the steps described by the loop 6008shown in FIG. 60, described above.

[1073] Once this has been done, in embodiments using a packed colorvalue representation of the type described in FIG. 96 above, step 18214converts the pixel color values resulting after the color balancingoperation into corresponding values from a more limited color palette.

[1074] Note that the method of FIG. 182 allows room for any colorbalancing that might be necessary, without tending to cause theunnecessary color spreading discussed above with regard to FIGS. 168 and169. It does this by insuring that there are at least two subpixels tothe left and to the right of any subpixels corresponding to area coveredby the font shape being rasterized.

[1075] In other embodiments of this aspect of the invention othermethods will be used to cause leftmost and rightmost edges of fontshapes and vertical strokes to be aligned with whole pixel boundaries,so as to take maximum advantage of the capability of non-linear colorbalancing to reduce smearing. In some such embodiments, whether or not apadding pixel columns was added to the left or right side of a fontbitmap could be a function of whether or not color balancingdistributions were required in such columns.

[1076]FIG. 183 describes functions for drawing a string of charactersusing the bitmaps produced by the method described in FIG. 182. Thispseudocode is similar to that described above with regard FIG. 97,except that it focuses on an aspect of the invention that is quiteuseful with the method for producing more clear non-linearlycolor-balanced subpixel-optimized font bitmaps describe with regard toFIG. 182.

[1077] When the draw string function 18300 shown in FIG. 183 is called,a step 18302 sets the pen position to a start position specified by thedraw string call that indicates where the display of the string is thestart.

[1078] Then a loop 9714A similar to the loop 9714 described in FIG. 97is performed for each character the string to the display.

[1079] In this loop a step 9716 accesses the current character's fontbitmap. Then a step 18304 sets the character start position to thecurrent pen position. Then a step 18306 adjusts the current pen positionby the left side bearing. As has been described above, the left sidebearing has been changed from what it would normally be to take intoaccount the fact that the character bitmap has been padded with oneextra pixel column on its left hand side, and thus will be decreased bythe width of one pixel column.

[1080] Next a step 9718A is performed for each pixel in the font bitmap.This includes a substep 18308, which tests to see if the current pixel'svalue is nonzero. If so, it draws the pixel on the screen at a positiondetermined as a function of the current pen position.

[1081] If the current pixel's value is zero, it represents a totallytransparent pixel, meaning the background color previously at theposition of the current pixel should be left unchanged. In thisembodiment of the invention the functions described in FIG. 96 reservethe value 0 to represent such a totally transparent pixel.

[1082] This practice of not writing transparent pixel's is applied toall pixels of the bitmap in the embodiment described in FIG. 183. Thispractice is particular valuable with regard to pixels in the paddingcolumn placed at the left most edge of a character-font bitmap by step18206 described above regard FIG. 182. This is because pixels in suchpadding columns will commonly have no color values spread into them as aresult of non-linear color-balancing when vertical stroke boundarieshave been aligned to vertical pixel boundaries. As a result, such pixelswill be transparent and color values that may have been placed in theirlocation by the character to its left can remain unchanged, allowing thepixel columns of adjacent characters that contain coverage or colorbalancing information to be placed adjacent to each other.

[1083] This can be seen for example at the location indicated by thenumeral 17302 in FIG. 173 where the pixel column between the “w” and “e”of the word “Web” contained color values from the “w” that have beenallowed to show through the transparent, and thus non-written, left sidepadding column associated with the “e”. This can also be seen at thelocation indicated by the numeral 17402 shown in FIG. 174, in which thepixel column between the “r” and the “e” contain color values from the“r” that are not overridden by the transparent padding pixel column ofthe “e”.

[1084] As those skilled in the art will recognize, function 9718A willrequire some sort of iteration controlling the position at which pixelsare drawn to be repeated for each row of a font bitmap, so as to haveeach of its bitmaps drawn in the proper place.

[1085] It should be appreciated that in other embodiments of theinvention, function could be provided that would allow overlappingnon-transparent pixel values from adjacent characters to be combined,rather than merely allowing non-transparent color values from onecharacter to show through when the corresponding pixels of the followingcharacter are transparent.

[1086] Preferably such a process would allow combination of suchtransparency values on a subpixel-by-subpixel basis. Such a processcould provide an even more accurate representation of closely spacedletters, although it would require more computation.

[1087] One way of achieving this result would be as follows: Add each ofthe three corresponding alpha component values associated with anyoverlapping pixel between characters, clipping any component values attheir maximum possible value. And then drawing each of the resultingpixels, using the combined component alpha values to determine how muchforeground color and how much background color should be drawn at itslocation.

[1088]FIG. 184 illustrates an alternate embodiment of this method forproviding more clear non-linear color-balanced font bitmaps. Itillustrates a hinting interface similar to that described above regardFIG. 176, except that it includes an interface feature 18402 comprisedof a user-movable line or control. This control allows the user toselectively position, relative to his or her character-font shapeoutline, the location to be aligned with the leftmost edge of a pixelcolumn following the leftmost padding pixel column.

[1089] Such an interface feature is more desirable when hinting fontsthat have a leftmost edge that is other than a vertical stroke. Forexample, when dealing with a character-font shape having a leftmost mainvertical stroke with a small serif sticking out from to its left edge byless than a full pixel width, the hinter may want to have the mainleftmost edge of the vertical stroke aligned with a whole pixelboundary, rather than the more leftward serif. The interface featureshown in FIG. 184 would make such an alignment easy for a hinter toselect.

[1090] Another way of giving a hinter the equivalent capability would beto allow him or her to select whether to add only two subpixel paddingcolumns, as described above with regard FIG. 170 or 171, or to add threeor more such subpixel padding columns, as is described above with regardto FIGS. 175, 181 and 182.

[1091] The just described method for making non-linear color balancedsubpixel optimized bitmaps more clear is not only applicable to smallfonts of the types shown in FIGS. 172 through 174 but also to largerfonts, such as the relatively large font shown in FIG. 55.

[1092] It should be appreciated that subpixel optimization can usuallyrepresent a font bitmap with just three different types of pixels: aforeground pixel, a background pixel, and an intermediary, colorbalancing, pixel. A foreground pixel represents a portion of the fontimage totally covered by the font shape being represented, and is drawnwith the foreground color with which the character is being represented.A background pixel represents a portion of the font image totallyuncovered by the font shape, and is drawn with the color of thebackground on top of which the font is being shown. An intermediatepixel represents a pixel that is partially covered by the font shapeand/or which receives color balancing distributions for a nearby pixel.The color of each of its subpixel's is determined separately by colorbalancing.

[1093] When prior art linear color balancing of the type described abovewith regard to FIGS. 46, 47, 52, and 93 are applied to fonts, colorbalancing is performed across every edge of a character shape in thedirection of subpixel color variation, even if that edge is perfectlyaligned with a pixel boundary. This leads to the spatial smearing of theshape of all letters, no matter how well hinted.

[1094] When non-linear color balancing of the type described above withregard to FIGS. 48, 49, 51, and 91 is applied to fonts, hinting can beused to greatly reduce the spatial smearing caused by color balancing.In portions of a character's shape where its edges are aligned withpixel boundaries, often no color balance distribution will be requiredacross pixel boundaries. This is because such non-linear color balancingonly distributes color imbalance that occurs within a give pixel. Thisallows foreground pixels to be next to background pixels along thedirection of subpixel color variation in such locations, greatlyincreasing the perceived clarity of the font shape. This is shown inFIGS. 173 and 174 in which substantial portions of the vertical strokesin the 8 pixel per em font shown those figures have been hinted so thattheir edges align with pixel boundaries. As a result, foreground pixelsare located horizontally next to background pixels along substantialportions of the edges of many such vertical strokes. Even with the lessoptimal hinting of leftmost vertical stroke edges shown in FIGS. 168 and169, the amount of color-balance smearing is substantially less thanthat which would result from prior art linear color balancing.

[1095]FIGS. 185 through 190 are highly simplified pseudocodedescriptions of user interface innovations that can be used to improvethe browsing of Web pages, particularly when such browsing is performedon relatively small or relatively low resolution screens.

[1096]FIG. 185 is a higher level description of the selected-textre-flow method described above with regard to FIGS. 129 through 134.This method 18500 includes a function 18502 that accesses a Web page'scontent and a function 18504 that performs a first layout of the Webpage's content, placing text at different horizontal locations indicatedfor text in the web page. The markup languages used to describe Webpages have multiple methods of indicating that different portions oftext are to be drawn at different horizontal locations or in differenthorizontal ranges in a web page, including, to name just two, the use oftables and frames.

[1097] Once such a layout has been performed, function 18506 displaysthe elements of the layout at a given scale and at relative positionsdetermined by the first layout. After this display has been performed astep 18508 enables the user to select a portion of the text at a givenhorizontal location in the display of the first layout. On way ofenabling this is described above with regard to FIG. 130.

[1098] If such a selection is made, function 8510 causes function 18512and 18514 to be performed. Function 18512 performs a second layout ofthe text that has been selected by the user. This second layout re-flowsthe selected text across the lines of the new column in which the texthas a different, usually larger, font size relative to the width of thelines in the new column. When this second layout is been performed,function 18514 displays the layout of the new column at a scale thatfills at least two thirds of the width of the screen or screen window onwhich the web page is being displayed.

[1099] As indicated above with regard to FIGS. 135 through 137, thesecond layout in such selected-text re-flow method allows a user to seeselected portions of the Web pages layout in large easy-to-read fontsizes. This can be a tremendous advantage on both low resolutionscreens, screens that are small, and/or screens that are relatively farfrom their viewer. The first layout in such a method allows the user toget a view of how the web page is intended to look in more normaldisplays, and allows the user to more rapidly select that portions ofthe text he or she desires to see re-displayed at a larger font size.

[1100]FIG. 186 is a high-level pseudocode description of a zoom-to-fitmethod 18600, of the general type described above with regard to FIGS.118 through 120.

[1101] This method includes a function 18602 that accesses a Web page'scontent, and a function 18604 that lays the Web page's content out.

[1102] Once such a display of the layout is being shown on a screen,function 18608 enables the user to drag a pointing device across thisdisplay. During such a drag, if the drag continues across a boundaryassociated with a screen edge, a function 18610 causes function 18612 toscroll, onto the screen, portions of the layout that were previously offscreen on the other side of the screen edge. This is done to allow userto select with a drag a portion of the layout that is either too largeto entirely fit on the screen at the current display scale or that waspositioned at the start of a drag so that only part of it was on thescreen.

[1103] If the user releases the drag, function 18614 causes functions18616 and 18618 to be performed. The first of these causes a part of thelayout to be defined as selected based on the positions in the layoutthat corresponds to the start and end of the drag. Such a selected partcan correspond to a portion of the layout having either the horizontalor vertical range of the drag or to an area having diagonal cornerscorresponding to the start and end of such a drag. Then function 18618displays the selected part of the layout at a scale that causes it tosubstantially fit the screen.

[1104]FIG. 187 is a high-level pseudocode description of a drag scrollmethod 18700 that allows a user to easily navigate within the display ofa web page's layout.

[1105] This method includes a function 18702 that accesses the Webpage's content, a function 18704 that performs a layout of the Webpage's content, and a function 18706 that displays all or portion ofthat layout at a given scale factor. Then a function 18708 enables theuser to drag a pointing device across the display of the layout.Function 18710 responds to any such drag across a boundary associatedwith a screen edge by scrolling onto the screen, past the screen edge,portions of the layout previously off screen.

[1106] This method can be used as part of, or independently from, zoomselection functions. It has the advantage of enabling a user to scrollaround the display of the layout of a web page by merely dragging apointing device across a boundary at, or near, an edge of the displayscreen.

[1107]FIG. 188 is a high-level pseudocode description of a click-zoommethod 18800 that enables a user to rapidly select to zoom in on adesired portion of the display of a layout of a web page. This methodincludes a function 18802 that accesses the web page's content, afunction 18804 that performs a layout of the Web page's content, and afunction 18806 that displays all or a portion of the Web page's layoutat a first scale. A function 18808 enables the user to click a pointingdevice at a selected location in the display of the layout at the firstscale, and function 18810 responds to such a click by performing azoomed-in display of the portion of the layout around the location inthe layout at which the click was performed. Commonly the zoomed-indisplay will be centered on the location in the layout at which theclick was made.

[1108]FIG. 189 is a highly simplified pseudocode description of thezoom-click method 18900 described above in some detail with regard toFIGS. 121 through 128.

[1109] This method includes a function 18902 that accesses the Webpage's content, a function 18904 that performs a layout of that content,and a function 18906 that displays all or a portion of the web page'slayout at a first scale on a display screen having an associatedpointing device. In the particular embodiment of this method describedin FIG. 189, the screen is a touch screen and it is intended that thepointing device can be a person's finger.

[1110] Once the display of the layout at the first scale has beenperformed, a function 18908 responds when a press has been made to thetouch screen display. When such a press occurs, this function causesfunctions 18910 through 18922 to be performed.

[1111] Function 18910 replaces, on the screen, the display of a portionof the web page at the first scale with a zoomedin display of a portionof the web page at a larger scale. This zoomed portion includes aselected location in the layout associated with touch screen press.Preferably the selected layout position has substantially the samelocation on the screen in the zoomed-in display as it had in the displayat the first scale at the time of selection. By substantially sameposition, it is meant that the selected positioned should have locationson the screen both immediately before and after the zoom that appears tocorrespond to the same touch positioned on the screen. Preferably thiswould mean that the change in the selected position's screen locationwould not change by more than twenty percent of the width or height ofthe screen immediately after such a zoom.

[1112] Once the zoomed-in display is shown, function 18912 displays acursor above the location at which the screen is being touched toindicate the selected location in the web page layout associated withthe touch. In some touch screen devices, particularly those designed foruse with styluses having relatively fine points, there is no need forsuch a cursor, since the user can see with considerable accuracy thepoint at which the screen is being touched. But in touch screensdesigned for use with fingers as pointing devices it is often desirableto place a cursor above the location at which the screen is beingtouched so the user can accurately see the location in the screen'sdisplay that is associated with such a touch. This is particularlydesirable when the method is being use with a display, such as thatshown in FIGS. 121 through 128, that is relatively small compared to thesize of a human finger.

[1113] During the continuation of the touch, a function 18914 respondsto any movement of the touch by correspondingly moving the cursor in thezoomed display. Also during the continuation of such a touch, a function18916 response to any movement of the touch across a boundary associatedwith a screen edge by scrolling onto the screen, past the screen edge,portions of the layout at the zoomed scale that were previously off thescreen. This allows the user to rapidly and conveniently scroll withinthe zoomed display of the web page while in zoom-click mode.

[1114] Function 18918 responds if the user releases a touch at a givenpositioned in the zoomed display of the web page. If so, a function18920 acts as if a pointing device click had occurred at a positioned inthe web page corresponding to that of the release. For example, if therelease is at a layout location corresponding to a web link, the systemwill respond by selecting the link, or if the release is at the locationof a radio button, the system will respond by flipping the state of theradio button.

[1115] Once this has been done, a function 18922 replaces the display ofthe zoomed-in layout on the screen with a display of the layout at thesame first scale factor at which the web page was displayed before thepointing device press was detected by function 18908.

[1116] As described above with regard to FIGS. 121 through 128,zoom-click provides a valuable technique for allowing a user to rapidlysee and select desired portions of a web page at a zoomed-in scale thatmakes the contents of those selected parts easier to read and easier toaccurately select with a pointing device.

[1117]FIG. 190 is a highly simplified pseudocode description of a method19000 that allows a user to see a zoom-out view of a web page usinggreeking to represent text lines. Greeking is the representation of thesize at which portions of text are laid out in a document bynon-readable graphic representations.

[1118] This method includes a function 19002 that accesses a Web page'scontent, a function 19004 that performs a layout of the web page'scontent, and functions 19006 and 19014 that detects the scale at whichthe user has selected to have the layout of the web page's contentsdisplay.

[1119] If the user has selected to have the web page's layout displayedat a given larger display scale, function 19006 causes function 19008 todisplay a portion of the web pages layout at the larger scale. Thisincludes performing a function 19010 to represent the layout's imageswith bitmap images scaled for display at the larger scale and a function19012 that represents the layout of the web page's strings with bitmapscomposed from separate font bitmaps that have sizes appropriate fordisplay at the larger scale.

[1120] If, on the other hand, the user has selected a given smallerdisplay scale, one which is so small that at least some of the text ofthe web page cannot be displayed at that scale in a size that isreadable, function 19014 causes a function 19016 to display a portion ofthe web page's layout at the smaller scale. This includes performing afunction 19018 that represents the layout's images with bitmap imagesthat have been scaled down for display at the smaller scale, and afunction 19020 that represents at lease some strings with bitmapscomposed of greeked text representations that indicate the size andlocation of individual strings in the display at the smaller scale.

[1121] In many cases the bitmaps used to represents strings in suchgreeking will merely be lines or rectangles having a width and/or heightcorresponding to the size of their corresponding strings in the webpage's layout at the small-scale.

[1122] When a layout is displayed at a size in which text is too smallto read the use of greeked representations of text can makes such adisplay easier and more pleasant to see, and such greeking generallytakes less computation to generate that would corresponding stringimages generated from unreadabily small font bitmaps.

[1123] One of the major uses of the method shown in FIG. 190 is toenable a user to quickly gain an overview of a web page's layout and toallow him or her to quickly select different portions of such a webpage, such as has been described above with regard to FIGS. 136 and 137.

[1124] Those skilled in the art of computer user interfaces willappreciate that some of the methods described in FIGS. 185 through 190can be used in combination with each other and with other aspects of theinvention described above as part of a single user interface mode,whereas others are them would normally be used in different userinterfaces or different user interface modes.

[1125] It should be understood that the foregoing description anddrawings are given merely to explain and illustrate, and that theinvention is not limited thereto except insofar as the interpretation ofthe appended claims are so limited. Those skilled in the art who havethe disclosure before them will be able to make modifications andvariations therein without departing from the scope of the invention.

[1126] The invention of the present application, as broadly claimed, isnot limited to use with any one type of operating system, computerhardware, or computer network, and, thus, other embodiments of theinvention could use differing software and hardware systems.

[1127] Furthermore, it should be understood that the program behaviorsdescribed in the claims below, like virtually all program behaviors, canbe performed by many different programming and data structures, usingsubstantially different organization and sequencing. This is becauseprogramming is an extremely flexible art in which a given idea of anycomplexity, once understood by those skilled in the art, can bemanifested in a virtually unlimited number of ways. Thus, the claims arenot meant to be limited to the exact steps and/or sequence of stepsdescribed in the figures. This is particularly true since the pseudocodedescribed in the text above has been highly simplified to let it moreefficiently communicate that which one skilled in the art needs to knowto implement the invention without burdening him or her with unnecessarydetails. In the interest of such simplification, the structure of thepseudocode described above often differs significantly from thestructure of the actual code that a skilled programmer would use whenimplementing the invention. Furthermore, many of the programmedbehaviors that are shown being performed in software in thespecification could be performed in hardware in other embodiments.

[1128] In the many embodiment of the invention discussed above, variousaspects of the invention are shown occurring together that could occurseparately in other embodiments of those aspects of the invention.

[1129] Most of the various illustrations of subpixel optimization andnon-linear color-balancing described in various parts of thisspecification relate to RGB subpixel addressable displays havingvertical subpixel striping. It should be appreciated that many aspectsof the present invention that relate to non-linear color balancing andsubpixel optimization can be used with subpixel displays that have BGRor other types of subpixel addressability, as well as subpixel displayshaving horizontal subpixel striping.

[1130] In the non-linear color balancing methods shown above the onlyportion of a subpixel's luminosity distributed by color balancing isthat which is higher than the minimum subpixel luminosity value within apixel. But in other embodiments other portion of a subpixel's luminositythat cause color imbalance within a pixel could be distributed, such asportions that differ from the mean or maximum subpixel luminosity ofpixel. In such embodiments subpixel luminosity values below such a meanor maximum would, in effect, be negative luminosity values, that couldbe distributed by a weighted decreasing of subpixel luminosities in sucha subpixel's neighborhood.

[1131] All the non-linear color balancing methods shown above onlydistribute those portions of a subpixel's luminosity that cause colorimbalance within a subpixel's corresponding pixel. This is done becausethe arrangement of three successive RGB or BGR subpixels commonly foundwithin a whole pixel are perceptually well color balanced. If thesubpixels of such a whole pixels are of equal luminosity they tend toappear more color balanced to the eye than an isolated set of the samethree colored subpixels shown at the same intensity in an order in whichgreen is not the central color. This is one of the reason why edges offonts that appear at other than whole pixel boundaries appear colorimbalanced.

[1132] But other non-linear color balancing embodiments need not belimited to only distributing subpixel luminance that causes imbalancewithin individual whole pixels. Other non-linear color balancingembodiments could determine the degree of subpixel color imbalancewithin regions other than whole pixels, and distribute subpixelluminance values based totally or in part on imbalance with suchregions. For example, studies could be performed to find whichdistributions of imbalanced coverage values created a minimal spatialspreading while maintaining the perception of color balance, for each ofa plurality of commonly occurring imbalance patterns, and suchperceptually selected distributions could be used to distribute colorimbalance that occurs in spatial regions other than whole pixel regions.

[1133] Certain aspects of the invention relate to the creation and useof subpixel optimized images that calculate luminosity values forindividual pixels by line coverage techniques. It should be appreciatedthat other aspects of the invention claimed below without specificrecitation of such line or area coverage functions are not limited tosuch methods of determining subpixel luminosity and could for exampleuse other known methods for determining coverage values with sourceimages comprised of color bitmaps, greyscale bitmaps, fonts, and othershapes, including, but not limited to, area sampling techniques.

[1134] In the discussion above, the source image windows used to assignluminosity or coverage values in subpixel-optimized bitmaps arerectangular, and have sizes corresponding a whole pixel in a multi-colorsubpixel-optimized image and corresponding to a subpixel in a bicolorsubpixel optimized image. In other embodiments windows of differentshapes and sizes can be used. For example, in multi-coloredsubpixel-optimized images source image windows might have a sizesomewhat smaller that that corresponding to a whole output image pixel.In some embodiments, a non-uniform weighting function could be used totranslate coverage or luminosity values in a source image window intocoverage or luminosity value in the output image. For example, inmulti-color subpixel-optimized images it might be preferred to give moreweight to the luminosity in portions of a source windows thatcorresponds in size and location to the subpixel whose luminosity isbeing determined. In fact, the line coverage arrangement discussed abovewith regard to FIGS. 17 through 19 provides such central weightingbecause its vertical line runs only through the portion of the sourceimage window that correspond to the location of the subpixel for whichits line coverage values are being determined.

[1135] Although many aspects of the invention explicitly relate to theuse of subpixel optimization, many other aspects do not depend onsubpixel-optimization. In some such aspects of the invention forms ofanti-aliasing can be used that do not involve subpixel-optimization.Forms of anti-aliasing that do not involve subpixel optimization canallow images to appear to have a higher resolution than could beprovided in the absence of such anti-aliasing. This is particularly truefor font images. For example, fonts as small as seven pixel's per em canbe read relatively easily provided that they have the right shape, areproperly hinted, and use anti-aliasing—either with or withoutsubpixel-optimization although proper subpixel-optimization makes suchsmall fonts easier to read.

[1136] In this specification and the claims that follow, reference to a“screen”, particularly a screen on which scaled-down images, text, orweb page layouts are displayed, can normally include either wholescreens or parts of screens, such as graphic windows on screens. Forexample, the scaled down screen images referred to might be shown in awindow on a considerably larger screen, or may be shown on a portion ofa small screen that is left after space is dedicated to certaingraphical user interface elements, such as, for example, the tool barshown in FIG. 114. It should also be appreciated that certainsubpixel-optimized aspects of the invention can be used to displayimages and/or text across all or a substantial portion of a largescreen, such as to allow such a large screen to see content at a higherspatial resolution that it could with non-subpixel-optimized techniques.

[1137] Some aspects of the invention specifically relate to laying outdigital content at a virtual resolution and then displaying it at ascaled-down resolution. It should be appreciated that in other aspectsof the invention the images and text of the digital content could bescaled down before layout, and then be laid out at the actual resolutionthey are to be shown at.

[1138] BIT01-1NP-A-K—Innovation Outline

[1139] The following is an outline of innovations that are part of thepresent invention. The innovations are divided in to eleven innovationgroups, labeled A through K. In the portion of the outline under eachinnovation group, a separate innovation is described by a heading in allcapitalized text. For some such inventions a more detailed and/oraccurate description is provided by text, most of the letters of whichare not capitalized. In the innovation outline, indentation is used toindicate the dependency of innovations, so that an innovation indentedunder another innovation in the outline is assumed to include all thefeatures of the innovations under which it is indented, in much the sameway that claims inherit limitations from claims they depend from. Thus,for example, if a given innovation recites “a method as in the parentinnovation” the innovation depends from the nearest innovation above itin the outline that is outdented (i.e., one heading level to the left)relative to the given innovation.

[1140] The innovation outline is not a claim set, but the applicantreserves the right to file claims covering many of these innovations,either in this application or continuations or continuations in partbased upon it. The below outline is not a complete list of all theinnovations contained in this application and where the specificationhas disclosed innovations not referred to in this outline, theapplicants reserve the right innovations such aspects of the inventionin the future.

[1141] A-Group Innovations

[1142] METHOD OF PRODUCING SUBPIXEL-OPTIMIZED IMAGE OF A SHAPE BYASSOCIATING A LUMINOUSITY VALUE WITH EACH SUBPIXEL OF THAT IMAGE BOTH ASA FUNCTION OF THE PERCENT OF THE SUBPIXEL'S AREA COVERED BY THE SHAPE,AND A COLOR BALANCING FUNCTION THAT DISTRIBUTES COVERAGE VALUES TONEARBY SUBPIXELS, WHERE THE PERCENT OF A SUBPIXEL'S COVERAGE VALUEDISTRIBUTED IS A FUNCTION OF THE PERCENT OF THAT VALUE THAT CAUSES COLORIMBALANCE

[1143] 1. A method of producing a subpixel-optimized bitmap of a shapesuitable for display on a subpixel addressable screen having pixelscomprised of separately-addressable, differently-colored subpixels, saidmethod comprising:

[1144] associating a luminosity value with each subpixel of the bitmapby:

[1145] rasterizing the shape being represented to produce for each givensubpixel a coverage value for the area in the bitmap corresponding tosubpixel's location, which coverage value represents the percent of thegiven subpixel's area in the bitmap that is covered by the shape beingrepresented;

[1146] performing a color balancing function for said plurality ofsubpixels, which color balancing distributes portions of the coveragevalues produced for individual subpixels by said rasterization to nearbysubpixels of different colors to prevent color imbalance; and

[1147] associating a luminosity value with each subpixel represented insaid bitmap based on the coverage value produced for each given subpixelby said raterization, as decreased by any of said color balancingdistributions from said given subpixel's coverage value to othersubpixel coverage values and as increased by any of said color balancingdistributions to the given subpixel's coverage value from other subpixelcoverage values;

[1148] wherein the percent, if any, of a given subpixel's coverage valuethat is distributed by said color balancing varies as a function of thepercent of said coverage value that causes color imbalance.

[1149] LUMINOSITY VALUES ARE ALPHA VALUES, SO BITMAP CAN BE USED WITHFORGROUND AND BACKGROUND COLORS

[1150] 2. A method as in Innovation 1 wherein:

[1151] the bitmap produced by the method is an alpha-value bitmap thatcan be used to create a second bitmap using a selected foreground andbackground color; and

[1152] the luminosity value calculated for an individual subpixel of thealpha-value bitmap is an alpha value that determines the relative extentto which an associated subpixel in the second bitmap has a colordetermined by the subpixel's corresponding component color value in saidforeground and/or background colors.

[1153] ONLY DISTRIBUTES PORTION OF SUBPIXEL'S COVERAGE THAT CAUSESIMBALANCE WITHIN ITS PIXEL

[1154] 3. A method as in Innovation 1 wherein said color balancingfunction only distributes portions of a subpixel's coverage value thatcauses color imbalance within the whole pixel of which the subpixel ispart.

[1155] FONTS BITMAPS 10 PIXELS PER EM OR LESS AND CHARACTER SHAPE ANDALIGNMENT HAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE BOUNDARIESWITH PIXEL BOUNDARIES

[1156] 4. A method as in Innovation 3 wherein the shape represented bysaid subpixel-optimized bitmaps are character font shapes that:

[1157] have a size of 10 pixels per em or less; and

[1158] have a shape and pixel alignment selected to increase the degreeof alignment of edges of the character shape with pixel boundaries ofsaid bitmap.

[1159] FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS HAVE ASHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE READABILITY AT SUCH ASMALL SIZE

[1160] 5. A method as in Innovation 4 wherein:

[1161] said subpixel-optimized font bitmaps include small font bitmapshaving a small font size of eight pixels per em or less; and

[1162] the shapes and pixel alignment of the character font shapesrepresented by said small font bitmaps have been selected as a functionof said small font size to improve the readability of said bitmaps atsaid small font size.

[1163] FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN ADVANCEWIDTH OF 4 PIXEL COLUMNS OR LESS

[1164] 6. A method as in Innovation 5 wherein the font bitmaps of saidsmall font size represent a majority of characters of the Roman alphabetwithin an advance width of 4 pixel columns or less.

[1165] WITH X-HEIGHT GREATER THAN 4 PIXELS

[1166] 7. A method as in Innovation 6 wherein the font bitmaps of saidsmall font size represent a majority of lowercase letters with anx-height greater than 4 pixels.

[1167] PART OF SAID FONT OUTLINE IS SUFFICIENTLY ALIGNED WITH EDGES OF1ST GROUP OF PIXELS THAT THERE IS NO PERCEPTIBLE DISTRIBUTION FROM THE1^(ST) GROUP'S SUBPIXELS AND A PART SUFFICIENTLY UNALLIGNED WITH EDGESOF 2^(ND) SET OF PIXELS THAT THERE IS A PERCEPTIBLE DISTRIBUTION FROMSUBPIXELS OF THE 2^(ND) SET OF PIXELS

[1168] 8. A method as in Innovation 3 wherein the subpixel-optimizedbitmap is of a font shape that has:

[1169] one or more portions with edges sufficiently aligned with theedges of a first contiguous group of pixels covered by said shape thatthere is so little color imbalance within each pixel of said first groupthat said color balancing function makes no perceptible distributes ofcoverage values from the subpixels of said first group; and

[1170] one or more other portions with edges sufficiently unaligned withthe pixel boundaries of each of a second set of pixels partially coveredby said shape that there is so much color imbalance within each of saidsecond set of pixels that said color balancing function makes aperceptible distribution of coverage values from the subpixels of saidsecond set of pixels.

[1171] PORTION OF SUBPIXEL'S COVERAGE DISTRIBUTED ACROSS MORE SUBPIXELSTHAN IN PIXEL

[1172] 9. A method as in Innovation 3 wherein said color balancingfunction distributes the portion of a subpixel's coverage that causescolor imbalance within its corresponding pixel across a greater numberof subpixels than are in a pixel.

[1173] DISTRIBUTED ACROSS FIVE SUBPIXELS CENTERED WITH SUBPIXEL ITSELF

[1174] 10. A method as in Innovation 9 wherein:

[1175] each pixel has three subpixels of different colors; and

[1176] said color balancing function distributes the portion of a givensubpixel's coverage that causes color imbalance within its correspondingpixel across a set of five successive subpixels centered on the givensubpixel.

[1177] ONLY DISTRIBUTE PORTION OF SUBPIXEL'S COVERAGE VALUE GREATER THANMINIMUM SUBPIXEL COVERAGE WITHIN PIXEL

[1178] 11. A method as in Innovation 3 wherein said color balancingfunction only distributes that portion of a given subpixel's coveragevalue produced by said rasterization that is greater than the minimumcoverage produced by said rasterization for any subpixel within thegiven subpixel's corresponding whole pixel.

[1179] BITMAP REPRESENTS A FONT

[1180] 12. A method as in Innovation 3 wherein the shape represented bythe subpixel-optimized bitmap is a character font shape.

[1181] BITMAP HAS FULL PIXEL COLUMN BEFORE SUBPIXEL COLUMN COVERED BYLEFTMOST EDGE OF FONT SHAPE, TO ALLOW FOR LEFTWARD COLOR BALANCEDISTRIBUTIONS

[1182] 13. A method as in Innovation 12 wherein:

[1183] pixels in the screen upon which the subpixel optimized bitmap areto be shown are arranged in rows and columns in which correspondinglycolored subpixels are arranged in successive subpixel columns withineach of said pixel columns;

[1184] the subpixel-optimized bitmap represents a font shape that hasits leftmost edge cover all or a part of a first subpixel column, whichfirst subpixel column is the leftmost subpixel column within a firstwhole pixel column; and

[1185] the subpixel-optimized bitmap has an additional whole pixelcolumn to the left of said first pixel column that allows for leftwardcolor balancing distributions of subpixel coverage values from one ormore subpixels of said first pixel column.

[1186] FULL PIXEL PADDING COLUMN IN SYSTEM WHERE THERE ARE THREESUBPIXELS PER PIXEL AND COLOR BALANCING DISTRIBUTES COVERAGE VALUES NOMORE THAN TWO SUBPIXELS TO LEFT

[1187] 14. A method as in Innovation 13 wherein three subpixels perpixel are resepresented in said subpixel optimized bitmap and the colorbalancing function distributes subpixel coverage values no more than twosubpixels to the left, so the leftmost subpixel column in saidadditional whole pixel column has no coverage values distributed to it.

[1188] METHOD OF PRODUCING SUBPIXEL-OPTIMIZED IMAGE OF A SHAPE BY ADDINGA PIXEL COVERAGE VALUE, DETERMINED AS FUNCTION OF COVERAGE OF ONE MORESUBPIXELS IN A PIXEL, TO LUMINANCE OF EACH OF ITS SUBPIXELS, ANDDISTRIBUTING THE DIFFERENCE BETWEEN EACH SUBPIXEL'S COVERAGE VALUE ANDITS PIXEL'S COVERAGE VALUE BETWEEN THE LUMINANCES OF THAT SUBPIXELS ANDNEARBY SUBPIXELS, AT LEAST SOME OF WHICH ARE IN A DIFFERENT PIXEL

[1189] 15. A method of producing a subpixel optimized bitmap, suitablefor display on a subpixel addressed screen that has pixels comprised ofseparately-addressable, differently-colored subpixels, where said bitmaprepresents a shape defined at a resolution higher than the resolution ofsubpixels corresponding to the bitmap, said method comprising:

[1190] determining a coverage value for each subpixel represented in thebitmap, which coverage value represents the percent of the givensubpixel's corresponding area in the bitmap that is covered by the shapebeing represented;

[1191] determining a pixel-wide coverage value for a given pixel as afunction of the coverage values calculated for multiple subpixel withinthe given pixel;

[1192] adding to a luminosity value to be calculated for each subpixelof a given pixel a value corresponding to the given pixel's pixel-widecoverage value;

[1193] performing a color balancing function for each subpixel in agiven pixel that distributes a portion, if any, of said subpixel'scoverage value that causes color imbalance within the given pixel, saidfunction including:

[1194] determining a differential coverage value for each subpixelcorresponding to the difference between the subpixel's coverage valueand the given pixel's pixel-wide coverage value;

[1195] distributing the differential coverage value calculated for eachgiven subpixel to the luminosity values being calculated for each of aset of subpixels of different colors in the vicinity of said givensubpixel to help balance the color imbalance caused by said differentialcoverage value.

[1196] THE IMAGE IS OF A FONT

[1197] 16. A method as in Innovation 15 wherein the shape of which thesubpixel-optimized image is made is a font shape.

[1198] BITMAP HAS FULL PIXEL COLUMN BEFORE SUBPIXEL COLUMN COVERED BYLEFTMOST EDGE OF FONT SHAPE, TO ALLOW FOR LEFTWARD COLOR BALANCEDISTRIBUTIONS

[1199] 17. A method as in Innovation 16 wherein:

[1200] pixels in the screen upon which the subpixel optimized bitmap areto be shown are arranged in rows and columns in which correspondinglycolored subpixels are arranged in successive subpixel columns withineach of said pixel columns;

[1201] the subpixel-optimized bitmap represents a font shape that hasits leftmost edge cover all or a part of a first subpixel column, whichfirst subpixel column is the leftmost subpixel column within a firstwhole pixel column; and

[1202] the subpixel-optimized bitmap has an additional whole pixelcolumn to the left of said first pixel column that allows for leftwardcolor balancing distributions of subpixel coverage values from one ormore subpixels of said first pixel column.

[1203] FULL PIXEL PADDING COLUMN IN SYSTEM WHERE THERE ARE THREESUBPIXELS PER PIXEL AND COLOR BALANCING DISTRIBUTES COVERAGE VALUES NOMORE THAN TWO SUBPIXELS TO LEFT

[1204] 18. A method as in Innovation 17 wherein three subpixels perpixel are resepresented in said subpixel optimized bitmap and the colorbalancing function distributes subpixel coverage values no more than twosubpixels to the left, so the leftmost subpixel column in saidadditional whole pixel column has no coverage values distributed to it.

[1205] FONTS BITMAPS 10 PIXELS PER EM OR LESS AND CHARACTER SHAPE ANDALIGNMENT HAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE BOUNDARIESWITH PIXEL BOUNDARIES

[1206] 19. A method as in Innovation 16 wherein the character fontshapes represented by said subpixel-optimized bitmaps:

[1207] have a size of 10 pixels per em or less; and

[1208] have a shape and pixel alignment selected to increase the degreeof alignment of edges of the character shape with pixel boundaries ofsaid bitmap.

[1209] FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS HAVE ASHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE READABILITY AT SUCH ASMALL SIZE

[1210] 20. A method as in Innovation 19 wherein:

[1211] said subpixel-optimized font bitmaps include small font bitmapshaving a small font size of eight pixels per em or less; and

[1212] the character shapes represented by said small font bitmaps andthe alignment of such shapes to the pixels in said small font bitmapshave been selected as a function of said small font size to improve thereadability of said bitmaps at said small font size.

[1213] FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN ADVANCEWIDTH OF 4 PIXEL COLUMNS OR LESS

[1214] 21. A method as in Innovation 20 wherein the font bitmaps of saidsmall font size represent a majority of characters of the Roman alphabetwithin an advance width of four pixel columns or less.

[1215] WITH X-HEIGHT GREATER THAN 4 PIXELS

[1216] 22. A method as in Innovation 21 wherein the font bitmaps of saidsmall font size represent a majority of lowercase letters with anx-height greater than four pixels.

[1217] FONT OUTLINE HAS PORTION SUFFICIENTLY ALIGNED WITH EDGES OF 1STGROUP OF PIXELS THAT THERE IS NO PERCEPTABL DISTRIBUTION FROM GROUPSSUBPIXELS AND PORTION SUFFICIENTLY UNALLIGNED WITH EDGES OF 2^(ND) SETOF PIXELS THAT THERE IS PERCEPTABLE DISTRIBUTION FROM ITS SUBPIXELS

[1218] 23. A method as in Innovation 16 wherein the character font shaperepresented by said subpixel-optimized bitmap has:

[1219] one or more portions with edges sufficiently aligned with theedges of a first contiguous group of pixels covered by said shape thatthere is so little color imbalance within each pixel of said first groupthat said color balancing function makes no perceptible distributes ofcoverage values from the subpixels of said first group; and

[1220] one or more other portions with edges sufficiently unaligned withthe pixel boundaries of each of a second set of pixels partially coveredby said shape that there is so much color imbalance within each of saidsecond set of pixels that said color balancing function makes aperceptible distribution of coverage values from the subpixels of saidsecond set of pixels.

[1221] PIXEL COVERAGE VALUE CORRESPONDS TO THE MINIMUM SUBPIXEL COVERAGEVALUE

[1222] 24. A method as in Innovation 15 wherein:

[1223] said pixel-wide coverage value is the minimum coverage valuedetermined for a subpixel within a given pixel; and

[1224] said differential coverage value determined for a subpixel is thedifference between the coverage value determined for the subpixel andthe minimum coverage value determined for any subpixel within the givenpixel.

[1225] DISTRIBUTION OF A SUBPIXEL'S DIFFERENTIAL COVERAGE VALUEDISTRIBUTES LARGEST PORTION TO SUBPIXEL ITSELF

[1226] 25. A method as in Innovation 15 wherein said distribution of agiven subpixel's differential coverage value to the luminosity values ofeach of a set of subpixels includes distributing a larger portion ofsaid differential coverage value to the luminosity value beingcalculated for the given subpixel than to the luminosity values beingcalculated for any other single subpixels of said set.

[1227] DISTRIBUTION OF A SUBPIXEL'S DIFFERENTIAL COVERAGE VALUE ISPERFORMED USING A DISTRIBUTION FILTER

[1228] 26. A method as in Innovation 25 wherein said distribution of thedifferential coverage value calculated for a given subpixel includesusing a distribution filter that determines the portion of the givensubpixel's differential coverage value that is distributed to theluminosity value of each different subpixel of said set.

[1229] DISTRIBUTION FILTER DIFFERENT FOR DIFFERENT COLOR SUBPIXELS

[1230] 27. A method as in Innovation 26 wherein different distributionfilters are used to distribute the differential coverage valuescalculated for subpixels of different colors.

[1231] AT LEAST SOME DISTRIBUTION FILTERS ARE ASYMETRICAL

[1232] 28. A method as in Innovation 26 wherein at least some of saiddistribution filters are asymetical, meaning that they distribute moreto the luminosity values being calculated for nearby subpixels on oneside of the given subpixel than to those being calculated for nearbysubpixels on the other side of said given subpixel.

[1233] LUMINOSITY VALUES ARE ALPHA VALUES, SO BITMAP CAN BE USED WITHFORGROUND AND BACKGROUND COLORS

[1234] 29. A method as in Innovation 15 wherein:

[1235] the bitmap produced by the method is an alpha-value bitmap thatcan be used to create a second bitmap using a selected foreground andbackground color; and

[1236] the luminosity value calculated for an individual subpixel of thealpha-value bitmap is an alpha value that determines the relative extentto which an associated subpixel in the second bitmap has a colordetermined by the subpixel's corresponding component color value in saidforeground and/or background colors.

[1237] MAP FROM CALCULATED PIXEL COLOR VALUE DETERMINED BY LUMINOSITYCALCULATED AFTER COLOR BALANCING FOR EACH OF ITS SUBPIXELS INTO ASMALLER PALETTE COLOR SPACE TO FIND COLOR TO BE ASSOCIATED WITHINDIVIDUAL PIXEL IN IMAGE

[1238] 30. A method as in Innovation 15 wherein:

[1239] the luminosity values calculated for the subpixels of a givenpixel define a calculated color value which can be any one of a firstnumber of values;

[1240] each calculated color value is mapped into a corresponding one ofa second, smaller number of palette color values; and

[1241] individual pixels in said image are represented by the palettecolor value into which its calculated color value has been mapped.

[1242] COLORS IN SMALLER PALETTE COLOR SPACE ARE SELECTED AS FUNCTION OFFREQUENCY WITH WHICH CALCULATED COLORS OCCUR IN MULTIPLE IMAGES CREATEDBY THE METHOD.

[1243] 31. A method as in Innovation 30 wherein a plurality of saidpalette color values have been selected as a function of the frequencywith different ones of said given calculated color values occur in aplurality of different images created by said method.

[1244] NON-GRAY CALCULATED COLORS THAT DIFFER IN CERTAIN WAYS FROM ANYPALETTE COLOR ARE MAPPED INTO A SUBSTANTIALLY GRAY PALETTE COLOR

[1245] 32. A method as in Innovation 30 wherein calculated color valueshaving unequal subpixel luminosity values that differ in certain waysfrom any palette color are mapped into a corresponding palette colorhaving equal subpixel luminosity values.

[1246] A METHOD OF DRAWING A SUBPIXEL-OPTIMIZED BITMAP OF FONT SHAPEIMAGE THAT ASSOCIATES A LUMINOUSITY WITH EACH SUBPIXEL CORRESPONDING TOCOVERAGE VALUE AND POSSIBLE DISTRIBUTIONS FROM AND TO THAT COVERAGEVALUE TO PREVENT COLOR IMBALANCE, IN WHICH PERCENT OF DISTRIBUTION FROMA COVERAGE VALUES VARIES AS FUNCTION OF THE PERCENT OF THAT VALUE THATCAUSES COLOR IMBALANCE

[1247] 33. A method of drawing an image of character-font shape as asubpixel-optimized bitmap on a subpixel addressable screen having pixelscomprised of separately-addressable, differently-colored subpixels, saidmethod comprising:

[1248] drawing a luminosity value for each given subpixel of the bitmapwhich luminosity value corresponds to:

[1249] a coverage value representing the percent of the given subpixel'scorresponding area in the image covered by the character-font shaperepresented by said image;

[1250] in the case of at least some of said subpixels, a color balancingdistribution of a percent of the given subpixel's coverage value fromsaid coverage value to coverage values of nearby subpixels, includingsubpixels of different color, necessary to prevent color imbalance thatwould result from the difference between the given subpixel's coveragevalue and the coverage values of a given set of one or more nearbysubpixels of different colors; and

[1251] in the case of at least some of said subpixels, such a colorbalancing distribution to the given subpixel's coverage value of aportion of coverage values from one or more nearby subpixels;

[1252] wherein the percent of each given subpixel's coverage valuedistributed from said coverage value by a color balancing distributionis a function of the percent of the given subpixel's coverage value thatcauses color imbalance within a set of nearby subpixels.

[1253] BITMAP REPRESENTS SHAPE IN FORGROUND ON BACKGROUND COLOR BASED ONSUBPIXEL ALPHA VALUES

[1254] 34. A method as in Innovation 33 wherein:

[1255] the bitmap represents the character-font shape in a foregroundcolor drawn on top of a background color and is generated from acorresponding sub-pixel optimized alpha-value bitmap; and

[1256] the luminosity value for a given subpixel of a given pixel in thedrawn bitmap is determined by a corresponding alpha value in acorresponding pixel of the alpha-value bitmap, which corresponding alphavalue determines the relative extent to which the given subpixel has aluminosity determined by the subpixel's corresponding component colorvalue in said foreground and/or background colors.

[1257] ONLY DISTRIBUTES PORTION OF SUBPIXEL'S COVERAGE THAT CAUSESIMBALANCE WITHIN ITS PIXEL

[1258] 35. A method as in Innovation 33 wherein said color balancingdistributions only distribute portions of a subpixel's coverage valuethat causes color imbalance within the whole pixel of which it is part.

[1259] PORTION OF SUBPIXEL'S COVERAGE DISTRIBUTED ACROSS MORE SUBPIXELSTHAN IN PIXEL

[1260] 36. A method as in Innovation 35 wherein said color balancingdistributions distribute the portion of a subpixel's coverage thatcauses color imbalance within its corresponding pixel across a greaternumber of subpixels than are in said pixel.

[1261] DISTRIBUTED ACROSS FIVE SUBPIXELS CENTERED WITH SUBPIXEL ITSELF

[1262] 37. method as in Innovation 36 wherein said color balancingdistributions distribute the portion of a given subpixel's coverage thatcauses color imbalance within its corresponding pixel across a set offive successive subpixels centered on the given subpixel.

[1263] ONLY DISTRIBUTE PORTION OF SUBPIXEL'S COVERAGE VALUE GREATER THANMINIMUM SUBPIXEL COVERAGE WITHIN PIXEL

[1264] 38. A method as in Innovation 35 wherein said color balancingdistributions only distribute that portion of a subpixel's coveragevalue that is greater than the minimum subpixel coverage within itscorresponding whole pixel.

[1265] BITMAP HAS FULL PIXEL COLUMN BEFORE SUBPIXEL COLUMN COVERED BYLEFTMOST EDGE OF FONT SHAPE, TO ALLOW FOR LEFTWARD COLOR BALANCEDISTRIBUTIONS

[1266] 39. A method as in Innovation 35 wherein:

[1267] pixels in the screen upon which the subpixel optimized bitmap areto be shown are arranged in rows and columns in which correspondinglycolored subpixels are arranged in successive subpixel columns withineach of said pixel columns;

[1268] the subpixel-optimized bitmap represents a font shape that hasits leftmost edge cover all or a part of a first subpixel column, whichfirst subpixel column is the leftmost subpixel column within a firstwhole pixel column; and

[1269] the subpixel-optimized bitmap has an additional whole pixelcolumn to the left of said first pixel column that allows for leftwardcolor balancing distributions of subpixel coverage values from one ormore subpixels of said first pixel column.

[1270] FULL PIXEL PADDING COLUMN IN SYSTEM WHERE THERE ARE THREESUBPIXELS PER PIXEL AND COLOR BALANCING DISTRIBUTES COVERAGE VALUES NOMORE THAN TWO SUBPIXELS TO LEFT

[1271] 40. A method as in Innovation 39 wherein three subpixels perpixel are resepresented in said subpixel optimized bitmap and the colorbalancing function distributes subpixel coverage values no more than twosubpixels to the left, so the leftmost subpixel column in saidadditional whole pixel column has no coverage values distributed to it.

[1272] METHOD OF DRAWING SUBPIXEL-OPTIMIZED BITMAP OF FONT SHAPE,INCLUDING DRAWING FOREGROUND PIXELS WITH ALL SUBPIXELS REPRESENT AFOREGROUND COLOR COMPONENT, DRAWING BACKGROUND PIXELS WITH ALL SUBPIXELSREPRESENTING BACKGROUND COLOR COMPONENT, AND INTERMEDIARY PIXELS WITHSUBPIXELS REPRESENT DIFFERENT RATIOS OF FOREGROUND AND BACKGROUND COLORCOMPONENTS IN A MANNER THAT ACHIEVES LOCAL COLOR BALANCE, IN WHICH SOMEFOREGROUND AND BACKGROUND PIXELS ARE ADJACENT ALONG THE DIRECTION OFSUBPIXEL VARIATION IN SOME PORTIONS OF THE IMAGE

[1273] 41. A method of drawing a subpixel-optimized bitmap image of acharacter-font shape on a subpixel addressable screen having a set ofpixels each comprised of a sequence of separately-addressable,differently-colored subpixels extending on a common direction ofsubpixel-color variation, said bitmap comprising:

[1274] drawing part of said image using one or more foreground pixels inwhich each subpixel represents a corresponding color component of aforeground color;

[1275] drawing part of said image using one or more background pixels inwhich each subpixel represents a corresponding color component of abackground color; and

[1276] drawing part of said image using one or more intermediary pixelsin which:

[1277] differently colored subpixels of an intermediary pixel representdifferent ratios of the corresponding color components of the foregroundand background color; and

[1278] the color values of subpixels of one or more adjacentintermediary pixels along said direction of subpixel-color variation aresufficiently color balanced to prevent any easily noticed perception ofa color that is not intermediary to the foreground and background colorto one reading the character-font shape image from a sufficient distanceto not be able to distinguish between individual pixels;

[1279] wherein in some parts of said bitmap image some of saidforeground and background pixels are directly adjacent to each other insaid direction of subpixel-color variation.

[1280] IN OTHER PARTS OF SAID IMAGE PIXELS OF SAID FIRST AND SECOND TYPEARE SEPARATED BY ONE OR TWO PIXELS OF THE THIRD TYPE

[1281] 42. A method as in Innovation 41 wherein:

[1282] in other parts of said bitmap image some foreground andbackground pixels are separated in said direction of subpixel-colorvariation by one or two intermediary pixels; and

[1283] the ratios of foreground to background color components indifferent subpixels in said one or two intermediary pixels vary only inan increasing manner or only in a decreasing manner along said directionof subpixel-color variation.

[1284] FOREGROUND AND BACKGROUND PIXELS, RESPECTIVELY, CORRESPOND TOPARTS OF IMAGE TOTALLY COVERED OR TOTALLY NOT COVERED BY FONT,INTERMEDIATE PIXELS CORRESPOND TO PARTS OF IMAGE PARTIALLY COVERED BYFONT AND/OR PARTS IN WHICH SUBPIXELS HELP BALANCE COLOR IMBALANCES INADJACENT INTERMEDIARY PIXELS

[1285] 43. A method as in Innovation 41 wherein:

[1286] foreground pixels correspond to portions of the image totallycovered by the character-font shape being represented;

[1287] background pixels correspond to portions of the image not at allcovered by the character-font shape being represented;

[1288] intermediate pixels correspond to:

[1289] portions of the image partially covered by the character-fontshape being represented; and/or

[1290] portions of the image in which subpixels represent a blendedratio of foreground and background color component to help balance acolor imbalance in an adjacent intermediary pixel.

[1291] MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION

[1292] 44. A computer system comprising:

[1293] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 43; and

[1294] one or more processors for executing said instructions.

[1295] MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE MEDIAINNOVATION

[1296] 45. A computer system comprising:

[1297] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 43.

[1298] PRODUCING SUB-PIXEL OPTIMIZED IMAGE OF A SHAPE BY ASSOCIATING ALUMINOUSITY VALUE WITH EACH SUBPIXEL OF THAT IMAGE BOTH AS A FUNCTIONTHE PERCENT OF THE SUBPIXEL'S AREA WHICH IS COVERED BY THE SHAPE, AND ASA FUNCTION OF A COLOR BALANCING FUNCTION DESIGNED TO DISTRIBUTE APORTION OF LUMOSITY VALUES WHICH WOULD CAUSE COLOR IMBALANCE TO OTHERNEARBY PIXELS, WHERE THE EXTENT OF DISTRIBUTION OF LUMINOSITY VALUES ISA FUCNTION OF EXTENT TO WHICH THEY CAUSE COLOR IMBALANCE

[1299] A method of producing a sub-pixel resolution representation of ashape, which image is suitable for display on a sub-pixel addressedscreen having pixels comprised of separately addressable differentlycolored sub-pixels, said method comprising:

[1300] producing a scaled sub-pixel optimized image of a bitmap image byassociating a luminosity value with each subpixel of the scaled image asa function of:

[1301] the percent the area of subpixel's area in the image that iscovered by the shape; and

[1302] a color balancing function designed to distribute a portion of asubpixel's luminosity values which otherwise would cause color imbalanceto nearby subpixels of different colors, where the percent of asubpixel's luminosity values that is so distributed is a function of thepercent of the subpixel's luminosity value which causes color imbalance.

[1303] THE SHAPE OF WHICH SUBPIXEL OPTIMIZED IMAGE IS MADE IS A FONT

[1304] A method as in the parent innovation wherein the shape of whichthe subpixel optimized image is made is a font.

[1305] The luminosity value calculated for an individual sub-pixel is analpha value that determines the relative extent to which the associatedsub-pixel in an image having a foreground and a background color willhave the component color value of the foreground color and/or of thebackground color that corresponds to the sub-pixel's color

[1306] LUMINOSITY VALUES ARE ALPHA VALUES, SO BITMAP CAN BE USED WITHFORGROUND AND BACKGROUND COLORS

[1307] A method as in the parent innovation wherein:

[1308] the sub-pixel resolution image is created to represent an imageof said shape which can be shown with a selected foreground color and aselected background color; and

[1309] the luminosity value calculated for an individual sub-pixel is analpha value that determines the relative extent to which the associatedsub-pixel in an image having a foreground and a background color willhave the component color value of the foreground color and/or of thebackground color that corresponds to the sub-pixel's color.

[1310] PRODUCING SUB-PIXEL OPTIMIZED IMAGE OF A SHAPE BY ADDING A PIXELCOVERAGE VALUE, DETERMINED AS FUNCTION OF COVERAGE OF ONE MORESUB-PIXELS IN A PIXEL, TO LUMINANCE OF EACH OF ITS SUB-PIXELS, ANDDISTRIBUTING THE DIFFERENCE BETWEEN EACH SUB-PIXEL'S COVERAGE VALUE ANDITS PIXEL'S COVERAGE VALUE BETWEEN THE LUMINANCES OF THAT SUB-PIXELS ANDNEARBY SUB-PIXELS, AT LEAST SOME OF WHICH ARE IN A DIFFERENT PIXEL

[1311] Determining a coverage value for each sub-pixel with given pixelin the image area, which subpixel coverage value corresponds to thepercentage of the sub-pixel which is covered by said shape;

[1312] determining a pixel coverage value for the given pixel, which isa function of the coverage values calculated for one or more of thesub-pixel with the given pixel;

[1313] adding to a luminosity value calculated for each sub-pixel of thegiven pixel a value corresponding to the given pixel's coverage value;

[1314] for each sub-pixel in the given pixel:

[1315] determining a differential coverage value for each sub-pixelcorresponding to the difference between the sub-pixel's coverage valueand the given pixel's coverage value;

[1316] adding to the luminosity value calculated for each givensub-pixel and one or more nearby subpixels a value corresponding to aportion of the given sub-pixel's differential coverage value, where atleast some of said nearby sup-pixels are located outside of the givensub-pixel's pixel.

[1317] THE SHAPE OF WHICH SUBPIXEL OPTIMIZED IMAGE IS MADE IS A FONT

[1318] A method as in the parent innovation wherein the shape of whichthe subpixel optimized image is made is a font.

[1319] PIXEL COVERAGE VALUE CORRESPONDS TO THE MINIMUM SUB-PIXELCOVERAGE VALUE

[1320] DISTRIBUTION OF A SUB-PIXEL'S DIFFERENTIAL COVERAGE VALUEDISTRIBUTES THE MOST VALUE TO THE SUB-PIXEL ITSELF

[1321] A method as in the parent innovation wherein said adding to theluminosity value calculated for each given sub-pixel and one or morenearby sub-pixels includes adding a larger value to the given sub-pixelthan to said nearby sub-pixels.

[1322] DISTRIBUTION OF A SUB-PIXEL'S DIFFERENTIAL COVERAGE VALUE ISPERFORMED USING A DISTRIBUTION FILTER

[1323] A method as in the parent innovation wherein said adding to theluminosity value calculated for each given sub-pixel and one or morenearby sub-pixels includes using a distribution filter that determinesthe size of the portion of the given sub-pixel's differential coveragevalue for which a corresponding value is added to the luminosity valuecalculated for the give sub-pixel and each of said nearby subpixels.

[1324] DISTRIBUTION FILTER IS DIFFERENT FOR SUBPIXEL'S OF DIFFERENTCOLORS

[1325] A method as in the parent innovation wherein differentdistribution filters are used for sub-pixels of different colors.

[1326] AT LEAST SOME DISTRIBUTION FILTERS ARE ASYMETRICAL

[1327] A method as in the parent innovation wherein at least some ofsaid distribution filters are asymmetrical, meaning that they distributemore to the luminosity values of nearby subpixels on one side of thegiven subpixel than to those of nearby subpixels on the other side ofsaid given sub-pixel.

[1328] LUMINOSITY VALUES ARE ALPHA VALUES, SO BITMAP CAN BE USED WITHFORGROUND AND BACKGROUND COLORS

[1329] A method as in the parent innovation wherein:

[1330] the sub-pixel resolution image is created to represent an imageof said shape which can be shown with a selected foreground color and aselected background color; and

[1331] the luminosity value calculated for an individual sub-pixel is analpha value that determines the relative extent to which the associatedsub-pixel in an image having a foreground and a background color willhave the component color value of the foreground color and/or of thebackground color that corresponds to the sub-pixel's color.

[1332] MAP FROM CALCULATED PIXEL COLOR VALUE DETERMINED BY LUMINOSITYCALCULATED FOR EACH OF ITS SUBPIXELS INTO A SMALLER PALETTE COLOR SPACETO FIND COLOR TO BE ASSOCIATED WITH INDIVIDUAL PIXEL IN IMAGE

[1333] A method as in the parent innovation wherein:

[1334] the luminosity values calculated for each sub-pixel of a givenpixel are used to define a calculated color value which can be any oneof a first number of values;

[1335] each calculated color value is mapped into a corresponding one ofa second number of palette color values, where said second number issmaller than said first number; and

[1336] individual pixels in said image are represented by a palettecolor value into which its calculated color value has been mapped.

[1337] COLORS IN SMALLER PALETTE COLOR SPACE ARE SELECTED AS FUNCTION OFFREQUENCY WITH WHICH CALCULATED COLORS OCCUR IN MULTIPLE IMAGES CREATEDBY THE METHOD.

[1338] A method as in the parent innovation wherein a plurality of saidpalette color values have been selected as a function of the frequencywith which given calculated color values occur in a plurality ofdifferent images created by said method.

[1339] NON-GRAY CALCULATED COLORS THAT DIFFER IN CERTAIN WAYS FROM ANYPALETTE COLOR ARE MAPPED INTO A SUBSTANTIALLY GRAY PALETTE COLOR

[1340] A method as in the parent innovation wherein non-gray calculatedcolors that differ in certain ways from any palette color are mappedinto a substantially gray palette color.

[1341] THE METHOD OF DISPLAYING FONT CREATED BY THE ABOVE PROCESS

[1342] THE METHOD OF DOWNLOADING FONTS CREATED BY THE ABOVE PROCESS

[1343] B-Group Innovations

[1344] ACCESSING DIGITAL CONTENT REPRESENTED BY MARK-UP LANGUAGEINCLUDING IMAGES, SCALING DOWN IMAGES FROM HIGHER RESOLUTION TO A LOWERRESOLUTION IN SUBPIXEL-OPTIMIZED MANNER, DISPLAYING CONTENT ON SCREENWITH FORMAT PARTIALLY DICTATED BY TAGS IN CONTENT AND WITH SCALED DOWNIMAGES

[1345] 1. A method of displaying—on a subpixel addressable screen havingpixels comprised of separately-addressable, differently-coloredsubpixels—digital content including text and/or images represented by amark-up language including tags that dictate the format in which suchcontent is to be displayed and tags that identify images to be displayedas part of said content, said method comprising:

[1346] accessing said digital content, including accessing one or moreimages, from a device in which said content is stored or is generateddynamically;

[1347] performing a down-scaling and subpixed-optimization process inwhich:

[1348] each of said accessed images is a source image for the process;

[1349] said process produces from each such source image a correspondingscaled-down, subpixel optimized image;

[1350] each such scaled image represents the source image from which ithas been produced at a lower pixel resolution than the pixel resolutionof said source image;

[1351] each such scaled image also represents said source image in asubpixel-optimized manner by causing the luminosity associated with eachsubpixel within a given pixel of the scaled image to represent theluminosity of the subpixel's color in a portion of the source image thatdiffers for each subpixel as a function of the subpixel's differentposition in the given pixel; and

[1352] displaying said accessed digital content on saidsubpixel-addressable screen in a format determined at least in part byone or more tag in said content, including, as part of said formatteddisplay, displaying said scaled images in a subpixel-optimized manner onsaid screen.

[1353] DIGITAL CONTENT INCLUDES STRINGS OF TEXT CHARACTERS AND DISPLAYOF THE CONTENT ALSO INCLUDES COMPOSING A BITMAP PATTERN TO REPRESENT THESUCCESSIVE INDIVIDUAL CHARACTERS OF SUCH A STRING FROM A SUCCESSION OFCORRESPONDING FONT BITMAPS

[1354] 2. A method as in Innovation 1 wherein:

[1355] said accessed digital content includes one or more strings ofdisplayable text characters; and

[1356] said display of said the digital content also includes drawing astring bitmap on said screen to represent said string, which stringbitmap is composed from a succession of separate font bitmaps eachselected to correspond to an individual character in the text of saidstring.

[1357] FONTS BITMAPS ARE ANTI-ALIASED, HAVE FONT SIZE OF 10 PIXEL'S PEREM OR LESS, AND CHARACTER SHAPE AND ALIGNMENT HAVE BEEN SELECTED TOINCREASE ALIGNMENT OF SHAPE BOUNDARIES WITH PIXEL BOUNDARIES

[1358] 3. A method as in Innovation 2 wherein one or more of said singleline strings are represented by font bitmaps that:

[1359] have a font size of 10 pixels per em or less;

[1360] are anti-aliased font bitmaps that assign a color value to agiven screen pixel as a graded function of a coverage value representingthe percent of the given pixel that is covered by a character shapebeing represented by the font bitmap; and

[1361] have the shape and pixel alignment of the character representedby such a font bitmap selected to increase the degree of alignment ofedges of the character shape with pixel boundaries of said bitmap.

[1362] ANTI-ALIASED FONTS ARE SUBPIXEL OPTIMIZED USING DIFFERENTSUBPIXEL OPTIMIZATION METHOD THAN IMAGES—LUMINOSITY OF SCALED IMAGESUBPIXEL REPRESENT THE INTENSITY OF SUBPIXEL'S COLOR IN CORRESPONDINGPART OF SOURCE IMAGE, LUMINOSITY OF FONT IMAGE SUBPIXEL REPRESENTSEXTENT SUBPIXEL IS COVERED BY FONT SHAPE AND, IN SOME SUBPIXELS, A COLORBALANCING FUNCTION

[1363] 4. A method as in innovation 3 wherein:

[1364] said font bitmaps are anti-aliased because they aresubpixel-optimized images of character-font shape;

[1365] said subpixel-optimized font images are subpixel-optimized in adifferent manner than the scaled images in that:

[1366] the luminosity assigned to each given subpixel of a pixel in oneof said scaled images represents the intensity of the given subpixel'scorresponding color in a portion of the source image having a positioncorresponding to the position of the given subpixel in the scaled image;and

[1367] the luminosity assigned to each given subpixel in one of saidfont bitmaps is a function of:

[1368]  a coverage value representing the percent of the givensubpixel's area in the font bitmap that is covered by the character-fontshape represented by the bitmap; and

[1369]  for at least some subpixels of said font bitmaps, a colorbalancing distribution between the given subpixel's coverage value andcoverage values of other nearby subpixels that reduces perceptible colorimbalances that would result from differences between coverage values ofnearby subpixels of different colors in the absence of such colorbalancing distributions.

[1370] PERCENT OF SUBPIXEL'S LUMINOSITY DISTRIBUTED IS FUNCTION OFPERCENT OF THAT VALUE WHICH CAUSES COLOR IMBALANCE WITHIN A PIXEL

[1371] 5. A method as in Innovation 4 wherein the percent of a givenfont bitmap subpixel's luminosity values that is distributed to achievecolor balance is a function of the percent of the given subpixel'sluminosity value that causes color imbalance within pixel of which thegiven subpixel is part.

[1372] FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS HAVE ASHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE READABILITY AT SUCH ASMALL SIZE

[1373] 6. A method as in Innovation 3 wherein:

[1374] said anti-aliased font bitmaps include small font bitmaps havinga small font size of eight pixels per em or less; and

[1375] the shape and pixel alignment of the character represented bysuch a small font bitmap have been selected to increase the degree ofalignment of edges of the character shape with pixel boundaries of saidsmall bitmap.

[1376] FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN ADVANCEWIDTH OF 4 PIXEL COLUMNS OR LESS

[1377] 7. A method as in Innovation 6 wherein the font bitmaps of saidsmall font size represent a majority of characters of the Roman alphabetwithin an advance width of 4 pixel columns or less.

[1378] WITH X-HEIGHT GREATER THAN 4 PIXELS

[1379] 8. A method as in Innovation 7 wherein the font bitmaps of saidsmall font size represent a majority of lowercase letters with anx-height greater than 4 pixels.

[1380] DIGITAL CONTENT IS ACCESSED OVER A COMPUTER NETWORK

[1381] 9. A method as in Innovation 1 wherein said accessing of saiddigital content is performed over an computer network.

[1382] NETWORK IS THE INTERNET

[1383] 10. A method as in Innovation 9 wherein said accessing of saiddigital content is performed over the Intenet.

[1384] THE DIGITAL CONTENT INCLUDES WEB PAGES

[1385] 11. A method as in Innovation 1 wherein said digital contentincludes web pages.

[1386] IMAGES ARE ACCESSED IN RESPONSE TO A BROWSER REQUEST AND THENDISPLAYED ON THE BROWSER

[1387] 12. A method as in Innovation 1 wherein:

[1388] said screen is part of a browser computer capable of browsingdigital content;

[1389] the browser computer includes browser programming that respondsto user input requesting a given portion of digital content byrequesting that content from a another entity, either a storage device,another computer, or other programming running on the browser computer;

[1390] said accessing of said digital content is performed in responseto the request from the browser programming; and

[1391] said display of said accessed digital content, including saidscaled images, is performed on the screen of said browser computer.

[1392] REQUESTED FROM SERVER OVER NETWORK, DIGITAL CONTENT IS READ ORGENERATED BY ONE OR MORE SERVERS, IMAGES ARE SCALED DOWN BY SERVER, ANDDIGITAL CONTENT IS DOWNLOADED FOR DISPLAY ON BROWSER

[1393] 13. A method as in Innovation 12 wherein:

[1394] said user request is communicated over a computer network fromsaid browser computer to one or more servers;

[1395] the digital content is accessed by being read from memory ordynamically generated by one or more of said servers;

[1396] said down-scaling and subpixel-optimization of said source imagesis performed by one or more of said servers; and

[1397] said digital content, including said scaled images, is downloadedover said computer network to said browser, which then performs saiddisplay of the digital content.

[1398] SCALED DOWN BY PROXY SERVER BETWEEN BROWSER AND THE SERVERSERVING THE IMAGE

[1399] 14. A method as in Innovation 12 wherein:

[1400] said browser computer communicates said user request over acomputer network to a proxy server;

[1401] said proxy server communicates said user request over a computernetwork to one or more servers that store or dynamically generate saiddigital content, including said source images;

[1402] said one or more servers sends said source image to said proxyserver;

[1403] said scaling down of said source images is performed by saidproxy server; and

[1404] the proxy server downloads the digital content, including saidscaled images to said browser, which then perform said display of thedigital content.

[1405] IMAGES SCALED DOWN BY THE BROWSER

[1406] 15. A method as in Innovation 12 wherein said down-scaling andsubpixel-optimizatin of said source images is performed by said browsercomputer.

[1407] BROWSER ALLOWS USER TO SELECT SCALE FACTOR AND IMAGES ARE SCALEDAND SUBPIXEL OPTIMIZATION TO THAT SIZE

[1408] 16. A method as in Innovation 12 further including:

[1409] allowing a user of the browser computer to select one of aplurality of scale factors; and

[1410] said down-scaling and subpixel-optimizing produces one or morescaled, subpixel-optimized images that each have a pixel size relativeto the respective source image that is selected as a function of saiduser selected scale factor.

[1411] DIGITAL CONTENT INCLUDES STRINGS OF TEXT CHARACTERS AND DISPLAYOF THE CONTENT ALSO INCLUDES COMPOSING A BITMAP PATTERN TO REPRESENT THESUCCESSIVE INDIVIDUAL CHARACTERS OF SUCH A STRING FROM A SUCCESSION OFCORRESPONDING FONT BITMAPS, AND THE SIZE OF SAID FONT BITMAPS HAS BEENSELECTED TO REFLECT THE REDUCTION IN PIXEL RESOLUTION OF SAID IMAGES

[1412] 17. A method as in Innovation 16 wherein:

[1413] said accessed digital content also includes one or more stringsof text characters; and

[1414] said display of said the digital content also includes drawing astring bitmap on said screen to represent said string, which stringbitmap is composed from a succession of separate font bitmaps eachselected to correspond to an individual character in the text of saidstring, and

[1415] the size of said font bitmaps varies as a function of said userselected scale factor.

[1416] USER SELECTED SCALE FACTOR IS COMUNICATED UP TO REMOTE SCALINGPROCESS, WHICH DOES SCALING

[1417] 18. A method as in innovation 16 wherein:

[1418] said other entity from which said browser programming requestssaid digital content is one or more remote computers that said browserprogramming communicates said request to over a computer network;

[1419] said user selected scale factor is also communicated from saidbrowser programming over said computer network to one or more of saidremote computers; and

[1420] said scaling down and subpixel optimizing of said source imagesis performed on one or more of said remote computers at a scale factorthat varies as a function of said user selected scale factorcommunicated over said network.

[1421] PRODUCING SUBPIXEL OPTIMIZED DISPLAY IMAGE BY CALCULATINGLUMINOSITY OF EACH SUBPIXEL AS A FUNCTION OF THE LENGTH OF A PLURALITYOF COVERAGE LINES IN A UNIQUE WINDOW IN A HIGHER RESOLUTION SOURCE IMAGEASSOCIATED WITH THE SUBPIXEL THAT ARE COVERED BY EACH OF ONE OR MOREHIGHER RESOLUTION SOURCE IMAGE PIXELS AND THE LUMINOSITY, IN THESUBPIXEL'S COLOR, OF EACH SUCH SOURCE IMAGE PIXEL

[1422] 19. A method of producing a subpixel-optimized display image torepresent a higher resolution source image, which display image issuitable for display on a subpixel addressable screen having pixelscomprised of separately-addressable, differently-colored subpixels, saidmethod comprising:

[1423] determining the luminosity of each given subpixel in a givenpixel of said display image by:

[1424] defining a plurality of coverage lines within a window in saidsource image having a position relative to the source imagecorresponding to the given subpixel's position relative to the displayimage, with the position of different source image windows associatedwith different subpixels of a given display image pixel differing as afunction of the different positions of said subpixels within the givendisplay image pixel;

[1425] determining which source image pixels overlaps each of saidcoverage lines within the given supixel's source image window;

[1426] determining what length of each of said coverage lines isoverlapped by each such overlapping source image pixel;

[1427] determining the luminosity of the given subpixel as a function ofthe length of each coverage line overlapped by each such overlappingsource image pixel and the respective luminosity, in the givensubpixel's color, of each such overlapping source image pixel.

[1428] AT LEAST TWO NON-PARALLEL LINE COVERAGE LINES ASSOCIATED WITHEACH SUBPIXEL

[1429] 20. A method as in Innovation 19 wherein the coverage linesassociated with a given subpixel include at least two coverage linesthat run in non-parallel directions on said subpixel's source imagewindow.

[1430] A SUBPIXEL'S SOURCE IMAGE WINDOW HAS A SIZE RELATIVE TO THESOURCE IMAGE CORRESPONDING TO THE SIZE OF A PIXEL IN THE DISPLAY IMAGE

[1431] 21. A method as in Innovation 19 wherein the source image windowassociated with each given subpixel has a size relative to the sourceimage corresponding to the size of a whole pixel relative to saiddisplay image.

[1432] PRODUCING SUBPIXEL OPTIMIZED DISPLAY IMAGE OF A SOURCE IMAGE BYASSOCIATING A LUMINOUSITY WITH EACH SUBPIXEL BOTH AS A FUNCTION OF THEAVERAGE PIXEL LUMINOSITY OF SOURCE IMAGE PIXELS IN SUBPIXEL'S SOURCEIMAGE WINDOW AND PERCENT OF THAT WINDOW COVERED BY EACH SUCH SOURCEIMAGE PIXEL, AND AS A FUNCTION OF A COLOR BALANCING DISTRIBUTION OFSUBPIXEL LUMOSITY VALUES TO NEARBY SUBPIXELS TO REDUCE COLOR IMBALANCE

[1433] 22. A method of producing a subpixel-optimized display image torepresent a higher resolution source image, which display image issuitable for display on a subpixel addressable screen having pixelscomprised of separately-addressable, differently colored supixels, saidmethod comprising:

[1434] defining a window in said source image having a position relativeto the source image corresponding to the given subpixel's positionrelative to the display image, with the position of different sourceimage windows associated with different subpixels of a given displayimage pixel differing as a function of the different positions of saidsubpixels within the given display image pixel;

[1435] determining the luminosity of each given subpixel in a pixel ofsaid display image as a function of:

[1436] the whole pixel luminosity of each of one or more source imagepixels that overlaps the given subpixel's source image window;

[1437] the percent of the given subpixel's source image windowoverlapped by each such overlapping source image pixel; and

[1438] a color balancing function that distributes subpixel luminosityvalues between nearby subpixels in the display image to reduce colorimbalance.

[1439] SOURCE IMAGE IS A GRAY SCALE IMAGE

[1440] 23. A method as in innovation 22 wherein the source image is agrayscale image.

[1441] SOURCE IMAGE IS A COLOR IMAGE

[1442] 24. A method as in innovation 22 wherein the source image is acolor image, and the whole pixel luminosity value associated with eachsource image pixel is a function of the average of the source imagepixel's luminosity values over all of the source image pixel's differentcomponent colors.

[1443] EXTENT OF DISTRIBUTION OF LUMINOSITY VALUES IS A FUNCTION OFEXTENT TO WHICH THEY CAUSE COLOR IMBALANCE WITHIN A PIXEL

[1444] 25. A method as in Innovation 22 wherein the percent, if any, ofa given subpixel's luminosity value that is distributed by said colorbalancing varies as a function of the percent of said coverage valuethat causes color imbalance within the pixel of which the given subpixelis part.

[1445] SIZE OF SOURCE IMAGE WINDOW CORRESPONDS TO SIZE OF SUBPIXEL

[1446] 26. A method as in Innovation 22 wherein a source image windowhas a size relative to the source image corresponding to the size of asubpixel relative to the display image.

[1447] CALCULATE LUMINOSITY OF EACH SUBPIXEL AS A FUNCTION OF THE LENGTHOF A PLURALITY OF COVERAGE LINES IN SOURCE IMAGE WINDOW COVERED BY EACHOF ONE OR MORE SOURCE IMAGE PIXELS AND THE WHOLE PIXEL LUMINOSITY OFEACH SUCH SOURCE IMAGE PIXEL

[1448] 27. A method as in Innovation 26 wherein:

[1449] a plurality of coverage lines are defined within the givensubpixel's source image window;

[1450] the luminosity of the given subpixel is determined by:

[1451] determining which source image pixels overlaps each of saidcoverage lines within the given supixel's source image window;

[1452] determining what length of each of said coverage lines isoverlapped by each such overlapping source image pixel; and

[1453] determining the luminosity of the given subpixel as a function ofthe length of each coverage line overlappled by each such overlappingsource image pixel and the respective whole pixel luminosity of eachsuch overlapping source image pixel.

[1454] CALCULATING LUMINOSITY OF EACH SUBPIXEL AS A FUNCTION OF THE AREAOF SOURCE IMAGE WINDOW COVERED BY EACH OF ONE OR MORE SOURCE IMAGEPIXELS AND THE LUMINOSITY, IN THE SUBPIXEL'S COLOR, OF EACH SUCH SOURCEIMAGE PIXEL

[1455] 28. A method as in Innovation 26 wherein:

[1456] a plurality of coverage lines are defined within the givensubpixel's source image window;

[1457] the luminosity of the given subpixel is determined by:

[1458] determining which source image pixels overlaps the givensupixel's source image window;

[1459] determining what area of the given subpixel's source image windowis overlapped by each such overlapping source image pixel; and

[1460] determining the luminosity of the given subpixel as a function ofthe area of the source image window overlappled by each such overlappingsource image pixel and the respective whole pixel luminosity of eachsuch overlapping source image pixel.

[1461] MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION

[1462] 29. A computer system comprising:

[1463] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 28; and

[1464] one or more processors for executing said instructions.

[1465] MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE MEDIAINNOVATION

[1466] 30. A computer system comprising:

[1467] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 28.

[1468] ACCESSING DIGITAL CONTENT REPRESENTED BY MARK-UP LANGUAGE,INCLUDING IMAGES, AND DISPLAYING IMAGES IN A SUB-PIXEL OPTIMIZED FORM

[1469] Accessing said digital content including said images from adevice in which it is stored or from programming which generates itdynamically; and

[1470] displaying on said screen one or more of said accessed images ata first pixel scale in which the luminosity of each differently coloredsubpixel of a given pixel is derived from a different area of the sameimage at a second, higher resolution, pixel scale.

[1471] DIGITAL CONTENT IS ACCESSED OF A COMPUTER NETWORK

[1472] A method as in the parent innovation wherein said accessing ofsaid digital content is performed over a computer network.

[1473] CONTENT ACCESSED OVER THE INTERNET

[1474] A method as in the parent innovation wherein said accessing ofsaid digital content is performed over the Internet.

[1475] THE DIGITAL CONTENT INCLUDES WEB PAGES

[1476] A method as in the parent innovation wherein said digital contentincludes web pages.

[1477] SCALED-DOWN IMAGES ARE CREATED DYNAMICALLY IN RESPONSE TO BROWSERREQUESTS

[1478] A method as in the parent innovation wherein:

[1479] said screen is part of a browser computer capable of browsingdigital content;

[1480] the browser computer includes browser programming which respondsto user input requesting a given portion of digital content byrequesting that content from another entity, either a storage device,another computer, or other programming running on the browser computer;

[1481] in response to the request from the browser programming, thedigital content is read from memory or dynamically generated at aresolution higher than said first scale;

[1482] after the image has been read from memory or dynamicallygenerated in response to said user request, the image is scaled down tosaid first scale and the luminosities of differently colored sub-pixelsare derived from a different area of the same image at the second,higher resolution, scale.

[1483] SCALED DOWN BY SERVER SERVING THE SCALED DOWN WEB CONTENT

[1484] A method as in the parent innovation wherein:

[1485] the image is read from memory or dynamically generated on aserver computer system;

[1486] said scaling down of an image to said first scale is performedthe server computer system; and

[1487] said scaled down image is downloaded to said browser, which thendisplays the scaled down image.

[1488] SCALED DOWN BY PROXY SERVER WITH IS INTERMEDIARY BETWEEN BROWSERAND THE SERVER SERVING THE CONTENT

[1489] A method as in the parent innovation wherein:

[1490] said browser computer communicates said user request over acomputer network to a proxy server;

[1491] said proxy server computer communicates said user request over aninternetwork to a server computer system which stores or dynamicallygenerates an image to be read;

[1492] said server computer system sends one of said images to saidproxy server;

[1493] said scaling down of said image to said first scale is performedby said proxy server; and

[1494] the proxy server downloads the scaled down image to said browser;which then displays the scaled down image.

[1495] SCALED DOWN BY THE BROWSER

[1496] A method as in the parent innovation wherein said scaling down ofan image to said first scale is performed by said browser computer,which then displays the scaled down image.

[1497] BROWSER ALLOWS USER TO SELECT SCALE FACTOR AND IMAGES AREDYNAMICALLY SCALED WITH SUBPIXEL OPTIMIZATION TO THAT SIZE

[1498] A method as in the parent innovation further including:

[1499] allowing a user of the browser computer to select one from aplurality of scale factors;

[1500] communicating said selected scale factor to said process whichscales down an image read from storage; and

[1501] causing said scaling process to scale down and subpixel optimizesaid image by a horizontal and vertical scale factor which varies as afunction of said selected scale factor.

[1502] USER SELECTED SCALE FACTOR IS COMUNICATED UP TO REMOTE SCALINGPROCESS, WHICH DOES SCALING

[1503] said server computer is a remote computer relative to saidbrowser; and

[1504] said scaling process is on a remote computer.

[1505] USER CAN VIEW IMAGES AT ONE SCALE AND SELECTED TO THEN VEIW THEMAT ANOTHER SCALE

[1506] A method as in the parent innovation wherein the allowing of theuser to select from one of a plurality of scale factors can be performedafter a given image has been read from storage or dynamically generated,scaled down to said first scale and subpixel optimized, and displayed,so as to cause the given image to be scaled, subpixel optimized, anddisplayed at a second, different scale factor.

[1507] USES CONTINUOUS COVERAGE FUNCTION TO DETERMINE LUMINOSITY OF EACHSUB-PIXEL

[1508] A method as in the parent innovation wherein the luminosity ofeach differently colored sub-pixel of a given pixel is determined by:

[1509] defining for the sub-pixel a plurality of coverage lines whichfit within a window in a higher resolution representation of said image,which window is different for each sub-pixel of a given pixel;

[1510] calculating the length of each coverage line which corresponds tothe given pixel in said higher resolution image;

[1511] determining the luminosity of the sub-pixel as a function of thelength of each coverage line which corresponds to each higher resolutionpixel and the respective luminosity in the sub-pixel's color of thathigher resolution image pixel.

[1512] USER INTERFACE ALLOWS USER TO SELECT SCALING FACTOR, AND IMAGESIS SCALED TO THAT FACTOR

[1513] A method as in the parent innovation further including:

[1514] allowing a user of the browser computer to select one from aplurality of scale factors;

[1515] communicating said selected scale factor to said process whichscales down an image; and

[1516] causing said scaling process to scale down said image by ahorizontal and vertical scale factor which varies as a function of saidselected scale factor.

[1517] CAN SELECT SCALE AT NON-INTEGER RATIO OF SCREEN SIZE

[1518] A method as in the parent innovation further including:

[1519] allowing a user of the browser computer to select one from aplurality of scale factors which include one or more scale factors whichare non-integer ratios of the screen size;

[1520] communicating said selected scale factor to said process whichscales down an image; and

[1521] causing said scaling process to scale down said image by ahorizontal and vertical scale factor which varies as a function of saidselected scale factor.

[1522] USER ABLE TO SELECT BETWEEN COLOR AND POSITION ACCURACY IN SCALEDIMAGES

[1523] A method as in the parent innovation further including:

[1524] allowing a user to select from a plurality of trade-offs betweencolor accuracy and positional accuracy in said scaled images;

[1525] communicating said selected color/positional accuracy selectionto said process which scales down an image; and

[1526] causing said scaling process to scale down said image by a methodwhich varies the portion of an image which is used to determine theluminosity of individual subpixels as a function of the user selectedcolor/positional accuracy selection.

[1527] ONE SELECTION TREATS A SOURCE IMAGE MORE AS GRAYSCALE IMAGE ANDANOTHER SELECTIOIN TREATS A SOURCE IMAGE MORE AS HAVING ITS OWN COLORS,AND SUBPIXEL'S LUMINOSITY IN SCALED IMAGE OF MORE GRAYSCALE IMAGE ISBASED MORE ON THE LUMINOSITY OF THE PORTION OF THE SOURCE IMAGECORRESPONDING TO THE SUBPIXEL'S OWN AREA THAN IN SCALED IMAGE OF THEMORE COLOR IMAGE.

[1528] A method as in the parent innovation further wherein:

[1529] the source image is a color image;

[1530] one of said user selections is between a more-grayscale selectionand one is a less-grayscale selection;

[1531] when the more-grayscale selection is made the scaled image iscalculated from a set of pixel color values in which the values ofindividual pixels' different color components have been adjusted towardthe average of those color component values for each such individualpixel;

[1532] when the less-grayscale selection is made the scaled image iscalculated from a set of pixel color values in which the values ofindividual pixels different color components have been less adjustedtoward the average of those color component values for each suchindividual pixel; and

[1533] individual subpixel luminosity values in the scaled imageproduced in response to the more-grayscale selection are based more onthe average whole pixel luminosities in the portion of the source imagecorresponding to the subpixel's own area than in scaled images producedin response to the less-grayscale selection, in which the luminosityvalue of individual subpixels are based more on the luminosity of thesubpixel's own color value in a pixel in a larger area of the sourceimage.

[1534] PRODUCING SUB-PIXEL OPTIMIZED IMAGE BY CALCULATING LUMINOSITY OFEACH SUB-PIXEL OF A GIVEN COLOR AS A FUNCTION OF THE LENGTH OF APLURALITY OF COVERAGE LINE ASSOCATED WITH THE SUB-PIXEL WHICH ARECOVERED BY EACH OF ONE OR MORE PIXELS OF A HIGHER RESOLUTION VERSION OFTHE IMAGE AND THE LUMINOSITY OF THE SUB-PIXEL'S COLOR IN EACH SUCH HIGHRES. PIXEL

[1535] A method of producing a sub-pixel resolution representation of animage suitable for display on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels, saidmethod comprising:

[1536] for each sub-pixel in a given pixel in said subpixel resolutionrepresentation determining the luminosity of that sub-pixel by:

[1537] defining for the sub-pixel a plurality of coverage lines whichfit within a window in a higher resolution representation of said image,which window is different for each sub-pixel of a given pixel;

[1538] calculating the length of each coverage line which corresponds tothe given pixel in said higher resolution image; and

[1539] determining the luminosity of the sub-pixel as a function of thelength of each coverage line which corresponds to each higher resolutionpixel and the respective luminosity in the sub-pixel's color of thathigher resolution image pixel.

[1540] SUB PIXEL'S VALUE IS DERIVED FROM AT LEAST TWO NON-PARALLEL LINECOVERAGE LINES

[1541] A method as in the parent innovation wherein the coverage linesassociated with a given sub-pixel include at least two coverage lineswhich run in non-parallel directions on said sub-pixel's window.

[1542] PRODUCING SUB-PIXEL OPTIMIZED IMAGE BY CALCULATING LUMINOSITY OFEACH SUB-PIXEL OF A GIVEN COLOR AS A FUNCTION OF THE AREA AND THELUMINOSITY OF THE SUBPIXEL'S COLOR OF EACH PIXEL IN A HIGHER RESOLUTIONVERSION OF THE IMAGE THAT FITS WITHIN A UNIQUE WINDOW ON THE HIGH RES.IMAGE ASSOCIATED WITH THE SUB-PIXEL

[1543] A method of producing a sub-pixel resolution representation of animage suitable for display on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels, saidmethod comprising:

[1544] for each sub-pixel in a given pixel in said subpixel resolutionrepresentation determining the luminosity of that sub-pixel by:

[1545] defining for the sub-pixel a window in a higher resolutionrepresentation of said image, which window is different for eachsub-pixel of a given pixel;

[1546] calculating the area of each pixel in said higher resolutionimage which totally or partially fits within the sub-pixel's window; and

[1547] determining the luminosity of the sub-pixel as a function of theincluded area calculated for each such higher resolution image pixel andthe respective luminosity in the sub-pixel's color of that highresolution image pixel.

[1548] A SUB-PIXEL'S ASSOCIATED WINDOW IN THE HIGH-RES. IMAGE HAS A SIZECORRESPONDING TO THE PORTION OF THE HIGH RESOLUTION IMAGE CORRESPONDINGTO THE SUB-PIXEL'S PIXEL AND A LOCATION CENTERED AT THE PORTION OF THEHIGH-RES. IMAGE CORRESPONDING TO THE CENTER OF SAID SUB-PIXEL

[1549] A method as in the parent innovation wherein the windowassociated with each subpixel in the higher resolution image has a sizeequal to the portion of the higher resolution image corresponding to thesubpixel's pixel and a center at the portion of the higher resolutionimage that corresponds to the center of the sub-pixel.

[1550] PRODUCING SUB-PIXEL OPTIMIZED IMAGE OF A BITMAP IMAGE BYASSOCIATING A LUMINOUSITY VALUE WITH EACH SUBPIXEL BOTH AS A FUNCTION OFTHE WHOLE PIXEL LUMINOSITY OF THE ONE OR MORE PIXELS IN THE SOURCE IMAGEWHICH COVER A SOURCE IMAGE WINDOW CORRESPONDING TO THE AREA OF THESUBPIXEL AND OF THE PERCENT OF THAT WINDOW COVERED BY EACH SUCH SOURCEIMAGE PIXELS AND AS A FUNCTION OF A COLOR BALANCING FUNCTION DESIGNED TODISTRIBUTE A PORTION OF LUMOSITY VALUES WHICH WOULD CAUSE COLORIMBALANCE TO OTHER NEARBY PIXELS

[1551] A method of producing a sub-pixel resolution representation of asource image suitable for display on a sub-pixel addressed screen havingpixels comprised of separately addressable differently coloredsub-pixels, said method comprising:

[1552] producing a scaled sub-pixel optimized image of a bitmap image byassociating a luminosity value with each subpixel of the scaled image asa function of:

[1553] the whole pixel luminosity of the one or more pixels in thesource image which cover a source image window corresponding to the areaof the subpixel;

[1554] the percent of that window covered by each such source imagepixel; and

[1555] a color balancing function that distributes subpixel luminosityvalues to reduce color imbalance.

[1556] SOURCE IMAGE IS A GRAY SCALE IMAGE

[1557] A method as in the parent innovation wherein the source image isa gray scale image.

[1558] SOURCE IMAGE IS A COLOR IMAGE

[1559] A method as in the parent innovation wherein the source image isa color image.

[1560] EXTENT OF DISTRIBUTION OF LUMINOSITY VALUES IS A FUCNTION OFEXTENT TO WHICH THEY CAUSE COLOR IMBALANCE

[1561] A method as in the parent innovation wherein the extent to whicha given luminosity value associated with a given subpixel's source imagewindow is distributed to other subpixels is a function of extent towhich the luminosity value causes a color imbalance.

[1562] C-Group Innovations

[1563] DISPLAYING MEDIA CONTAINING BOTH TEXT AND IMAGES BOTH SCALINGDOWN AND SUBPIXEL-OPTIMIZING THE VISUAL REPRESENTATION OF BOTH ITSIMAGES AND FONTS

[1564] A method of displaying, on a subpixel addressed screen havingpixels comprised of separately-addressable, differently-coloredsubpixels, digital content, including text and images, said methodcomprising:

[1565] displaying, on said screen, a scaled-down subpixel-optimizedrepresentation of one or more of said images in which the luminosity ofeach differently colored subpixel of a given pixel is derived from adifferent area of the same image at a second, higher resolution, pixelscale;

[1566] displaying, on said screen, a scaled-down subpixel-optimizedrepresentation of each of one or more characters fonts of said text inwhich the luminosity of each differently colored subpixel of a givenpixel of the scaled-down image of a given character shape is derivedfrom a different area of a higher resolution image of that character;and

[1567] THE TEXT IS TEXT INCLUDED IN A MARK-UP LANGAGUE AND THE DISPLAYEDIMAGES ARE DATA OBJECTS IDENTIFIED BY TAGS IN THAT MARK-UP LANGUAGE

[1568] A method as in the parent innovation wherein:

[1569] said digital content is represented by tagged text written in amark-up language that includes image tags which identify image dataobjects;

[1570] said text displayed on said screen includes strings of charactersfrom said tagged text; and

[1571] said images displayed on said screen are images represented byimage data objects identified by said image tags.

[1572] DIGITAL CONTENT IS A WEB PAGE AND THE SCALING AND SUBPIXELOPTIMIZATION OF IMAGES AND TEXT ALLOWS USER TO SEE WEB PAGE ON ASUBPIXEL DISPLAY HAVING A GIVEN WHOLE-PIXEL RESOLUTION AS IF VIEWING THEWEB PAGE ON A SCREEN WITH A HIGHER RESOLUTION

[1573] A method as in the parent innovation wherein:

[1574] the digital content is a web page; and

[1575] the scaled-down and subpixel-optimized images and text allow auser to see the web page on a subpixel addressed screen having a givenwhole-pixel resolution as if viewing the web page on a screen with ahigher resolution.

[1576] DIGITAL CONTENT IS SCREEN OUTPUT PRODUCED BY A SOFTWAREAPPLICATION AND THE SCALING AND SUBPIXEL OPTIMIZATION OF IMAGES AND TEXTALLOWS USER TO SEE THE SCREEN OUTPUT ON A SUBPIXEL DISPLAY HAVING AGIVEN WHOLE-PIXEL RESOLUTION AS IF VIEWING THE WEB PAGE ON A SCREEN WITHA HIGHER RESOLUTION

[1577] A method as in the parent innovation wherein:

[1578] the digital content is screen output generated by a softwareapplication; and

[1579] the scaled-down and subpixel-optimized images and text allow auser to see the screen output on a subpixel addressed screen having agiven whole-pixel resolution as if viewing the web page on a screen witha higher resolution.

[1580] IMAGES AND FONTS ARE SCALED DYNAMICALLY FROM STORED ORDYNAMICALLY GENERATED REPRESENTATION IN RESPONSE TO USER CONTENT REQUEST

[1581] A method as in the parent innovation wherein:

[1582] said screen is part of a browser computer capable of browsingdigital content;

[1583] the browser computer includes browser programming which respondsto user input requesting a given portion of digital content byrequesting that content from a another entity, either a storage device,another computer, or other programming running on the browser computer;

[1584] in response to the request from the browser programming, thedigital content is read from memory or dynamically generated at aresolution higher than said first scale;

[1585] the scaled-down subpixel-optimized representation of said imagesare calculated after the digital content's images have been read frommemory or dynamically generated in response to said user request; and

[1586] the size of the scaled-down subpixel-optimized representation ofcharacter fonts is determined as a function of size identified for suchfonts in the digital content, after that digital content has been readfrom memory or dynamically generated in response to the user request.

[1587] BY SERVER STORING IMAGE, WHICH DOWNLOADS THOSE SCALED, SUBPIXELOPTIMIZED IMAGES

[1588] A method as in the parent innovation wherein:

[1589] a browser computer communicates a user request for a givenportion of digital content over a computer network to a server computersystem;

[1590] the server computer system reads the requested digital contentfrom memory or dynamically generates it;

[1591] the calculation of the scaled-down and subpixel-optimized imagerepresentations is performed by the server computer system; and

[1592] the scaled-down subpixel-optimized image representations and thedigital content's text is downloaded over the network to the browsercomputer, which then displays the scaled down images and text.

[1593] BY PROXY SERVER, WHICH DOWNLOADS THOSE SCALED, SUBPIXEL OPTIMIZEDIMAGES

[1594] A method as in the parent innovation wherein:

[1595] a browser computer communicates a user request for a givenportion of digital content over a computer network to a proxy server;

[1596] said the proxy server communicates said user request over thenetwork to a remote computer system;

[1597] the server computer system receiving the request, reads therequested digital content from memory and/or dynamically generates itand sends the image to the proxy server over the computer network;

[1598] the calculation of the scaled-down and subpixel-optimized imagerepresentations is performed by the proxy server; and

[1599] the scaled-down subpixel-optimized image representations and thedigital content's text is downloaded over the network to the browsercomputer, which then displays the scaled down images and text.

[1600] BY BROWSER

[1601] A method as in the parent innovation wherein the calculation ofthe scaled-down and subpixel-optimized image representations isperformed by the proxy server, which then displays the scaled downimage.

[1602] USER CAN SELECT DISPLAY SCALE FROM ONE OF A PLURALITY OFREDUCED-SIZED SCALES AND IMAGE AND FONTS ARE DYNAMICALLY SCALED TOSELECTED SCALE

[1603] A method as in the parent innovation:

[1604] further including enabling a user to select a desired displayscale from a plurality of possible reduced-size scales each having alower resolution than the resolution at which the image is read frommemory or dynamically generated; and

[1605] wherein the scale factor used in the calculation of thescaled-down and subpixel-optimized representations of images and in thescaling down of character font sizes is determined by the user selecteddisplay scale.

[1606] DISPLAYING SUBPIXEL-OPTIMIZED REPRESENTATION OF DIGITAL CONTENTHAVING BOTH IMAGES AND TEXT USING DIFFERENT SUBPIXEL OPTIMIZATIONALGORITHMS FOR TEXT AND MULTI-COLOR IMAGES—WHEREIN THE IMAGE ALGORITHMDETERMINES A GIVEN SUBPIXEL'S LUMINOSITY BASED MORE ON LUMINOSITYOUTSIDE OF PORTION OF SOURCE REPRESENTATION CORRESPONDING TO THESUBPIXEL THAN DOES TEXT ALGORITHM; AND IMAGE ALGORITHM DETERMINES AGIVEN SUBPIXEL'S LUMINOSITY BASED MORE EXCLUSIVELY ON THE AMOUNT OF THELUMINOSITY OF THE GIVEN SUBPIXELS COLOR FOUND IN THE GIVEN SUBPIXEL'SWINDOW IN THE SOURCE REPRESENTATION THAN DOES THE TEXT ALGORITHM, WHOSEDETERMINATION OF A GIVEN SUBPIXEL'S LUMINOSITY VALUE IS LESS INFLUENCEDBY THE GIVEN SUBPIXEL'S COLOR

[1607] A method of displaying, on a subpixel addressed screen havingpixels comprised of separately-addressable, differently-coloredsubpixels, digital content that includes both text and multicolorimages, said method comprising:

[1608] displaying on the screen subpixel-optimized representations ofboth the digital content's multicolor images and text in which theluminance of individual subpixels of a pixel conveys information fromdifferent portions of the image or text character represented by thatpixel, including using different algorithms to produce thesubpixel-optimized representations of multicolor images and of theshapes of text characters;

[1609] wherein:

[1610] the image algorithm used to produce subpixel-optimizedrepresentations of a multicolored image and the text algorithm used toproduce subpixel-optimized representations of text characters bothdetermine the luminosity of each differently colored subpixel of a givenpixel based on the luminosity in a corresponding different window of asource representation of the image or character shape to be represented

[1611] the image algorithm determines a given subpixel's luminositybased more on luminosity outside of the portion of the sourcerepresentation that corresponds in size to the given subpixel than doesthe text algorithm; and

[1612] the image algorithm determines a given subpixel's luminositybased more exclusively on the amount of the luminosity of the givensubpixel's color found in the given subpixel's corresponding window inthe source representation than does the text algorithm, whosedetermination of a given subpixel's luminosity value is less influencedby the given subpixel's color.

[1613] ALGORITHIM FOR IMAGES CALCULATES SUBPIXEL LUMINANCE BASED ONAMOUNT OF THAT SUBPIXEL'S COLOR FOUND IN A PORTION OF A HIGHERRESOLUTION VERSION OF IMAGE THAT IS LARGER THAN THE AREA CORRESPONDINGTO THE SUBPIXEL IN THAT HIGH RES. IMAGE—AND ALGORITHM FOR CHARACTERSHAPES CALCULATES SUBPIXEL LUMINANCE BASED ON THE PERCENT OF THESUBPIXEL'S PORTION OF A HIGHER RESOLUTION REPRESENTATION OF CHARACTER'SSHAPE COVERED BY THE CHARACTER'S SHAPE

[1614] A method as in the parent innovation wherein:

[1615] the algorithm used to produce subpixel-optimized representationsof a multicolored image determines the luminosity of each differentlycolored subpixel of a given pixel based on the amount of the luminosityof that subpixel's color found in a respective different portion of ahigher resolution representation of the image that is larger than thearea corresponding to the size of the subpixel in that higher resolutionrepresentation; and

[1616] the algorithm used to produce subpixel-optimized representationsof a character shape determines the luminosity of each differentlycolored subpixel of a given pixel based on the extent to which theportion of a higher resolution representation of the character's shapethat corresponds to the subpixel is covered by the character's shape.

[1617] COLOR BALANCE FILTERING USED IN REPRESENTATIONS OF CHARACTERSHAPES

[1618] A method as in the parent innovation wherein the algorithm usedto produce subpixel-optimized representations of characters shapesincludes:

[1619] producing a scaled sub-pixel optimized image of a bitmap image byassociating a luminosity value with each subpixel of the scaled image asa function of:

[1620] the percent the area of the subpixel's area in the image that iscovered by the shape; and

[1621] a color balancing function designed to distribute a portion of asubpixel's luminosity values which otherwise would cause color imbalanceto nearby subpixels of different colors

[1622] PERCENT OF SUBPIXEL'S LUMINOSITY DISTRIBUTED IS FUNCTION OFPERCENT OF THAT VALUE WHICH CAUSES COLOR IMBALANCE

[1623] A method as in the parent innovation wherein the percent of asubpixel's luminosity values that is distributed to achieve colorbalance is a function of the percent of the subpixel's luminosity valuewhich causes color imbalance.

[1624] DIGITAL CONTENT IS DOWNLOADED OVER A COMPUTER NETWORK IN THE FORMOF SUBPIXEL-OPTIMIZED IMAGE REPRESENTATION BITMAPS CREATED BY THE IMAGEALGORITHM AND TEXT STRINGS, RECEIVING COMPUTER DISPLAYS THE DOWNLOADEDDIGITAL CONTENT BY DISPLAYING THE DOWNLOADED IMAGE BITMAPS AND BYDISPLAYING THE DOWNLOADED TEXT STRINGS USING SUBPIXEL-OPTIMIZEDREPRESENTATIONS CREATED BY THE TEXT ALGORITHM

[1625] A method as in the parent innovation wherein:

[1626] said digital content is downloaded over a computer network in theform of subpixel-optimized image bitmaps created by the image algorithmand text strings;

[1627] a computer receiving this download displays the downloadeddigital content by:

[1628] displaying the downloaded image bitmaps; and

[1629] displaying the downloaded text strings using subpixel-optimizedfont bitmaps created by the text algorithm to represent the charactersin the downloaded text strings

[1630] REPEATED IMAGE BITMAPS ARE REPRESENTED SYMBOLICALLY IN DOWNLOADEDTO REDUCE REQUIRED BANDWIDTH

[1631] A method as in the parent innovation wherein said download of thedigital content represents repeated occurrences of the samesubpixel-optimized image bitmap by a symbolic reference, rather than bya repeated transmission of the bitmap to reduce the amount ofinformation required for the download.

[1632] DIGITAL CONTENT IS LAID OUT BEFORE DOWNLOAD, TEXT STRINGS AREDOWNLOADED AS SINGLE LINE STRINGS, DIGITAL CONTENT SPECIFIES LOCATION ATWHICH SUBPIXEL-OPTIMIZED IMAGE BITMAPS AND TEXT STRINGS ARE TO BEDISPLAYED ON SCREEN, SO RECEIVING COMPUTER DOES NOT HAVE TO LAYOUTIMAGES AND TEXT STRINGS

[1633] A method as in the parent innovation wherein:

[1634] the digital content is laid out before it is downloaded to saidreceiving computer;

[1635] the text strings downloaded contain text which is to be displayedon one line; and

[1636] the downloaded content specifies the location at whichsubpixel-optimized image bitmaps and text strings are to be displayed onthe screen, so the receiving computer does not have to determine thelocation of said images and text strings

[1637] CLIENT REQUESTS SYMBOLICALLY REFERRED TO OBJECTS IF DOESN'T HAVETHEM

[1638] IF PROXY KNOWS HASN'T SENT THEM BEFORE COULD SEND THEM WITHREQUEST

[1639] RECEIVING COMPUTER REQUESTS OVER THE NETWORK SUBPIXEL OPTIMIZEDFONT BITMAPS FOR CHARACTER-FONT SHAPES IN DOWNLOADED STRINGS FOR WHICHIT DOES NOT HAVE BITMAPS

[1640] A method as in the parent innovation wherein the receivingcomputer requests over the network such font bitmaps to representcharacter-font shapes in downloaded strings for which it does not havecorresponding bitmaps.

[1641] RECEIVING COMPUTER GENERATES SUBPIXEL-OPTIMIZED FONT BITMAPS FROMOUTLINE FONTS FOR CHARACTER-FONT SHAPES IN DOWNLOADED STRINGS

[1642] A method as in the parent innovation wherein the receivingcomputer generates such font bitmaps from outline fonts to representcharacter-font shapes in the downloaded strings.

[1643] FONT BITMAPS ARE DOWNLOADED FROM SAME COMPUTER AS IMAGE BITMAPS

[1644] A method as in the parent innovation wherein such font bitmapsare downloaded from same computer as image bitmaps.

[1645] IMAGE AND FONT SIZES ARE AUTOMATICALLY SCALED AS FUNCTION OFDISPLAY SCALE AND SUBPIXEL OPTIMIZED FONTS ARE SHOWN AT THOSE SCALES

[1646] A method as in the parent innovation wherein:

[1647] the size of the displayed subpixel-optimized representations ofimages and text is scaled as a function of a given display scale.

[1648] //this variation can be in different displays of same content bythe same user, in displays of different content by the same user, or bydisplays of the same or different content by different viewers

[1649] IMAGES AND FONTS ARE SCALED DYNAMICALLY FROM STORED ORDYNAMICALLY GENERATED REPRESENTATION IN RESPONSE TO USER CONTENT REQUEST

[1650] A method as in the parent innovation wherein:

[1651] said digital content is read from memory or dynamically generatedin response to a user request;

[1652] said subpixel-optimized representation of said images arecalculated after the digital content's images have been read from memoryor dynamically generated in response to said user request, and saidcalculation includes causing the subpixel-optimized images to bescaled-down to said display scale; and

[1653] the size of the scaled-down subpixel-optimized representation oftext characters which are displayed is determined as a function of thesize identified for such fonts in the digital content, after thatdigital content has been read from memory or dynamically created inresponse to the user request.

[1654] BY SERVER STORING OR DYNAMICALLY CREATING IMAGE, WHICH DOWNLOADSTHOSE SCALED, SUBPIXEL OPTIMIZED IMAGES

[1655] A method as in the parent innovation wherein:

[1656] a browser computer communicates a user request for a givenportion of digital content over a computer network to a server computersystem;

[1657] the server computer system reads the requested digital contentfrom memory or dynamically generates it;

[1658] the calculation of the scaled-down and subpixel-optimized imagerepresentations is performed by the server computer system; and

[1659] the scaled-down subpixel-optimized image representations and thedigital content's text is downloaded over the network to the browsercomputer, which then displays the scaled down images and text.

[1660] BY PROXY SERVER, WHICH DOWNLOADS THOSE SCALED, SUBPIXEL OPTIMIZEDIMAGES

[1661] A method as in the parent innovation wherein:

[1662] a browser computer communicates a user request for a givenportion of digital content over a computer network to a proxy server;

[1663] said proxy server communicates said user request over the networkto a remote computer system;

[1664] the server computer system receiving the request, reads therequested digital content from memory or dynamically generates it andsends the image to the proxy server over the computer network;

[1665] the calculation of the scaled-down and subpixel-optimized imagerepresentations is performed by the proxy server; and

[1666] the scaled-down subpixel-optimized image representations and thedigital content's text is downloaded over the network to the browsercomputer, which then displays the scaled down images and text.

[1667] BY BROWSER

[1668] A method as in the parent innovation wherein the calculation ofthe scaled-down and subpixel-optimized image representations isperformed by the proxy server, which then displays the scaled downimage.

[1669] USER CAN SELECT DISPLAY SCALE FROM ONE OF A PLURALITY OFREDUCED-SIZED SCALES AND IMAGE AND FONTS ARE DYNAMICALLY SCALED TOSELECTED SCALE

[1670] A method as in the parent innovation:

[1671] further including enabling a user to select a desired displayscale from a plurality of possible reduced-size scales each having alower resolution than the resolution at which the image was read frommemory or dynamically generated; and

[1672] wherein the scale factor used in the calculation of thescaled-down and subpixel-optimized representations of images and in thescaling down of character font sizes is determined by the user selecteddisplay scale.

[1673] DIFFERENT SIZES FONTS ARE SCALED BY A DIFFERENT RATIO TO PREVENTSIZE OF SMALLER FONTS FROM DROPPING BELOW A GIVEN SIZE

[1674] A method as in the parent innovation wherein:

[1675] said digital content can specify different sizes for differentportions of text; and

[1676] a first portion of text having a smaller specified font size isscaled down by less in said display than a second portion of text havinga larger specified font size to prevent the display of characters ofsaid first portion of text from falling below a given size.

[1677] DIGITAL CONTENT SPECIFIES A FONT FAMILY FOR A GIVEN PORTION OFTEXT, AND THAT PORTION OF TEXT IS DISPLAYED WITH A DIFFERENT FONT FAMILYSELECTED TO BE EASIER TO VEIWED AT A SMALLER PIXEL RESOLUTION

[1678] A method as in the parent innovation wherein:

[1679] said digital content can specify a first font family for a givenportion of its text; and

[1680] said given portion of text is displayed with a second, differentfont family selected to be easier to read at small font resolutions.

[1681] SUBPIXEL RESOLUTION IS HIGHER IN A FIRST DIRECTION THAN IN APERPINDICULAR SECOND DIRECTION, THE DISPLAY OF CERTAIN CHARACTERS ISSCALED DOWN MORE IN THE FIRST DIRECTION RELATIVE TO THE SECOND DIRECTIONTHAN IS THE DISPLAY OF IMAGES

[1682] A method as in the parent innovation wherein:

[1683] the subpixel resolution of said screen is higher in a firstdirection than in a second, perpendicular direction; and

[1684] the display of characters of at least a portion of text isautomatically scaled down, as a function of said display scale, more inthe first direction relative to the second direction than is the displayof images.

[1685] FIRST DIRECTION IS THE HORIZONTAL DIRECTION

[1686] A method as in the parent innovation wherein the first directionis the horizontal direction.

[1687] DISPLAYED SUBPIXEL-OPTIMIZED REPRESENTATION OF TEXT CHARACTERSARE DERIVED FROM BITMAPS REPRESENTING A SEPARTE OPACITY VALUE FOR EACHSUBPIXEL OF A PIXEL, DISPLAYED SUBPIXEL-OPTIMIZED IMAGES ARE TRUE COLORBITMAPS WITH SEPARATE LUMINANCE VALUE FOR EACH SUBPIXEL OF A PIXEL

[1688] THE TEXT IS TEXT INCLUDED IN A MARK-UP LANGAGUE AND THE DISPLAYEDIMAGES ARE DATA OBJECTS IDENTIFIED BY TAGS IN THAT MARK-UP LANGUAGE

[1689] A method as in the parent innovation wherein:

[1690] said digital content is represented by tagged text written in amark-up language that includes image tags which identify image dataobjects;

[1691] said text displayed on said screen includes strings of charactersfrom said tagged text; and

[1692] said images displayed on said screen are images represented byimage data objects identified by said image tags.

[1693] DIGITAL CONTENT IS A WEB PAGE AND THE SCALING AND SUBPIXELOPTIMIZATION OF IMAGES AND TEXT ALLOWS USER TO SEE WEB PAGE ON ASUBPIXEL DISPLAY HAVING A GIVEN WHOLE-PIXEL RESOLUTION AS IF VIEWING THEWEB PAGE ON A SCREEN WITH A HIGHER RESOLUTION

[1694] A method as in the parent innovation wherein:

[1695] the digital content is a web page; and

[1696] the subpixel-optimized representations of images are scaled downfrom the images in said web page;

[1697] the subpixel-optimized representation of text characters showsaid characters at font sizes which are scaled-down from the font sizesindicated for those characters in said web page; and

[1698] the scaled-down and subpixel-optimized representation of imagesand text allow a user to see the web page on a subpixel addressed screenhaving a given whole-pixel resolution as if viewing the web page on ascreen with a higher resolution.

[1699] DIGITAL CONTENT IS SCREEN OUTPUT PRODUCED BY A SOFTWAREAPPLICATION AND THE SCALING AND SUBPIXEL OPTIMIZATION OF IMAGES AND TEXTALLOWS USER TO SEE THE SCREEN OUTPUT ON A SUBPIXEL DISPLAY HAVING AGIVEN WHOLE-PIXEL RESOLUTION AS IF VIEWING THE WEB PAGE ON A SCREEN WITHA HIGHER RESOLUTION

[1700] A method as in the parent innovation wherein:

[1701] the digital content is screen output generated by a softwareapplication; and

[1702] the subpixel-optimized representations of images are scaled downfrom the images in said screen output;

[1703] the subpixel-optimized representation of text characters showsaid characters at font sizes which are scaled-down from the font sizesindicated for those characters in said screen output; and

[1704] the scaled-down and subpixel-optimized images and text allow auser to see the screen output on a subpixel addressed screen having agiven whole-pixel resolution as if viewing the screen output on a screenwith a higher resolution.

[1705] D-Group Innovations

[1706] ACCESSING DIGITAL CONTENT REPRESENTED BY MARK-UP LANGUAGE,INCLUDING TEXT, AND DISPLAYING TEXT CHARACTERS WITH SUB-PIXEL OPTIMIZEDPIXEL PATTERNS DERIVED AS A FUNCTION OF THE EXTENT TO WHICH EACHSUBPIXEL WAS COVERED BY CHARACTER OUTLINE

[1707] A method of displaying, on a sub-pixel addressed screen havingpixels comprised of separately addressable differently coloredsub-pixels, digital content including text and/or images represented bya mark-up language including tags which identify images contained insaid content, said method comprising:

[1708] accessing said digital content including said text; and

[1709] displaying on said screen characters of said text in which:

[1710] the pixel patterns representing each individual text characterrepresent an outlined defined shape of the character; and

[1711] the luminosity of each differently colored subpixel of a givenpixel used in the display of a portion of a given character's shape hasbeen derived as a function of the extent to which the outline of thegiven character's shape covers that individual sub-pixel.

[1712] ACCESSED DIGITAL CONTENT IS A WEB PAGE

[1713] A method as in the parent innovation wherein said accesseddigital content is a web page.

[1714] DIGITAL CONTENT IS DOWNLOADED OVER THE INTERNET

[1715] A method as in the parent innovation wherein said web page isaccessed by downloading it over the Internet.

[1716] DOWNLOADING SUB-PIXEL OPTIMIZED FONTS OVER INTERNET

[1717] A method as in the parent innovation further comprising thedownloading over the Internet of character-font shape informationnecessary to display the pixel patterns representing each of a pluralityof said text characters.

[1718] DOWNLOADING SUB-PIXEL OPTIMIZED FONTS OVER INTERNET

[1719] A method as in the parent innovation further comprising thedownloading over the Internet of character-font shape informationnecessary to display the pixel patterns representing each of a pluralityof said text characters.

[1720] DOWNLOADED FONTS ARE IN THE FORM OF SUBPIXEL OPTIMIZED PIXELPATTERNS

[1721] A method as in the parent innovation wherein:

[1722] said downloaded character-font shape information is in the formof pixel patterns; and

[1723] said displaying of said characters includes displaying saiddownloaded pixel patterns.

[1724] SIZE OF FONT SERVED VARIES WITH SIZE TO WHICH PAGE IS SCALED

[1725] DOWNLOADED FONTS ARE IN THE FORM OF FONT OUTLINES WITH HINTING

[1726] A method as in the parent innovation wherein:

[1727] said downloaded character-font shape information is in the formof character shape outline definitions and hinting information on how tomap said outline shapes onto pixel arrays of a given size; and

[1728] said displaying of said characters includes displaying pixelpatterns generated from said character shape and hinting information.

[1729] DOWNLOADING A SUBSETS OF A FONT'S CHARACTER'S SELECTED AS AFUNCTION OF THE TEXT CHARACTERS WHICH HAVE BEEN DOWNLOADED FOR DISPLAY

[1730] A method as in the parent innovation wherein said downloading ofcharacter-font shape information includes download such information fora sub-set of a given font's characters which subset is selected as afunction of the text characters of a given font which have beendownloaded for said display.

[1731] DOWNLOADED FONTS ARE OF A DIFFERENT FONT FAMILY THAN THOSESUGGESTED FOR TEXT IN MARK-UP LANGUAGE

[1732] A method as in the parent innovation wherein:

[1733] said mark-up language includes tags indicating information aboutthe font which should be used to display a given portion of text;

[1734] said method further comprises displaying characters from saidgiven portion of text using a different font family than that suggestedby said portion of text by said tags; and

[1735] said downloaded character-font shape information includesinformation necessary for displaying said given portion of text withpixel patterns corresponding to said different font.

[1736] DIFFERENT HEIGHT/WIDTH RATIO

[1737] DIFFERENT FONT FAMILY OPTIMIZED FOR LOW PIXEL COUNT AND DIFFERENTHORIZONTAL SUBPIXEL RESOLUTION THAN VERTICAL PIXEL RESOLUTION

[1738] DOWNLOADING FONTS FROM DIFFERENT COMPUTER THAN THAT FROM WHICHTEXT IS DOWNLOADED

[1739] A method as in the parent innovation wherein said character-fontshape information is downloaded from a different computer than that fromwhich said digital content including said text is downloaded.

[1740] AUTOMATICALLY DOWNLOADING CHARACTER-FONT SHAPES FROM THEDIFFERENT COMPUTER AS A FUNCTION OF THE CHARACTER-FONT SHAPES SPECIFIEDBY THE DOWNLOADED TEXT

[1741] A method as in the parent innovation wherein:

[1742] said text is displayed on a browser computer; and

[1743] said browser receives said downloaded text from a first computer;and

[1744] said browser requests and receives said downloaded character-fontshape information for a set of character-font shapes determined as afunction of the character-font shapes specified by the downloadeddigital content.

[1745] DOWNLOADED CHARACTER-FONT SHAPE INFORMATION IS REQUESTED USINGTHE HTTP PROTOCOL

[1746] A method as in the parent innovation wherein said downloadedcharacter-font shape information is requested using the Http protocol.

[1747] USING NON-LINEAR SUB-PIXEL FONT OPTIMIZATION—PRODUCING SUB-PIXELOPTIMIZED IMAGE OF A CHARACTER SHAPES BY ASSOCIATING A LUMINOUSITY VALUEWITH EACH SUBPIXEL OF THAT IMAGE BOTH AS A FUNCTION THE PERCENT OF THESUBPIXEL'S AREA WHICH IS COVERED BY THE SHAPE, AND AS A FUNCTION OF ACOLOR BALANCING FUNCTION DESIGNED TO DISTRIBUTE A PORTION OF LUMOSITYVALUES WHICH WOULD CAUSE COLOR IMBALANCE TO OTHER NEARBY PIXELS, WHERETHE EXTENT OF DISTRIBUTION OF LUMINOSITY VALUES IS A FUCNTION OF EXTENTTO WHICH THEY CAUSE COLOR IMBALANCE

[1748] A method as in the parent innovation wherein the font pixelpattern representing the shape of each individual text character isproduced by associating a luminosity value with each subpixel of thefont pixel pattern as a function of:

[1749] the percent of the area of the subpixel's area in the image thatis covered by the character shape; and

[1750] a color balancing function designed to distribute a portion of asubpixel's luminosity values which otherwise would cause color imbalanceto nearby subpixels of different colors, where the percent of asubpixel's luminosity value that is so distributed is a function of thepercent of the subpixel's luminosity value which causes color imbalance.

[1751] DISPLAYED FONTS ARE DYNAMICALLY SCALED AFTER THEY ARE RECEIVED ASA FUNCTION OF A DISPLAY SCALE FACTOR

[1752] A method as in the parent innovation wherein:

[1753] the displaying of said text on the screen is scaled down by adisplay scale factor;

[1754] the digital content is received in a form in which the text hasnot been scaled by the scale factor;

[1755] after the digital content is received the size of the scaled-downsubpixel-optimized representation of character fonts is determined as afunction of a the scale factor.

[1756] BY SERVER STORING OR DYNAMICALLY GENERATING DIGITAL CONTENT,WHICH DOWNLOADS THOSE SCALED, SUBPIXEL OPTIMIZED IMAGES

[1757] A method as in the parent innovation wherein:

[1758] a browser computer communicates a user request for a givenportion of digital content over a computer network to a server computersystem;

[1759] the server computer system reads the requested digital contentfrom memory or dynamically generates the requested digital content;

[1760] the size of the scaled-down subpixel-optimized representation ofthe text's character fonts is determined by the server computer system;and

[1761] the requested digital content and the size of such scaled-downsubpixel-optimized character font representations is downloaded by theserver, over the network, to the browser computer, which then displaysthe digital content's text using such scaled-down representations.

[1762] BY PROXY SERVER, WHICH DOWNLOADS THOSE SCALED, SUBPIXEL OPTIMIZEDIMAGES

[1763] A method as in the parent innovation wherein:

[1764] a browser computer communicates a user request for a givenportion of digital content over a computer network to a proxy server;

[1765] the proxy server communicates the user request over the networkto a remote server computer system;

[1766] the server computer system receiving the request, reads therequested digital content from a storage device or dynamically generatesthe requested digital content;

[1767] the server computer system sends the requested digital content tothe proxy server over the computer network;

[1768] the size of the scaled-down subpixel-optimized representation ofthe text's character fonts is determined by the proxy server; and

[1769] the requested digital content and the size of such scaled-downsubpixel-optimized character fonts representations is downloaded by theproxy server, over the network, to the browser computer, which thendisplays the digital content's text using such scaled-downrepresentations.

[1770] BY BROWSER

[1771] A method as in the parent innovation wherein the size of thescaled-down subpixel-optimized representation of the text's characterfonts is determined by the browser computer, which then displays thescaled down image.

[1772] USER CAN SELECT DISPLAY SCALE FROM ONE OF A PLURALITY OFREDUCED-SIZED SCALES AND IMAGE AND FONTS ARE DYNAMICALLY SCALED TOSELECTED SCALE

[1773] A method as in the parent innovation:

[1774] further including enabling a user to select a desired displayscale factor from a plurality of possible reduced-size scales eachhaving a lower resolution than that in which said digital content isfirst received; and

[1775] wherein the size of the scaled-down subpixel-optimizedrepresentation of character fonts is determined as a function of theuser selected scale factor.

[1776] DISPLAYING TEXT WITH SUBPIXEL-OPTIMIZED FONT BITMAPS WHICH ARE ASSMALL AS 10 WHOLE PIXELS PER EM

[1777] A method as in the parent innovation wherein said scaled downsubpixel-optimized representations of character fonts are as small as 10whole pixels per EM.

[1778] AS SMALL AS 8 WHOLE PIXELS PER EM

[1779] A method as in the parent innovation wherein said scaled downsubpixel-optimized representations of character fonts are as small as 8whole pixels per EM.

[1780] DISPLAYING TEXT WITH FONT FAMILY OPTIMIZED FOR READABILITY WHENSHOWN IN A SUBPIXEL OPTIMIZED MANNER AT A FONT SIZE OF LESS THAN 10PIXELS PER EM.

[1781] A method as in the parent innovation wherein the font family usedfor the display of the text is a font family optimized for readabilitywhen shown in a subpixel optimized manner at a size of less than 10pixels per EM.

[1782] DISPLAYING TEXT WITH FONT FAMINLY THAT HAS CHARACTER SHAPESOPTIMIZED FOR DISPLAY WITH HIGHER SUB-PIXEL RESOLUTION IN THE WIDTHDIRECTION THAN HEIGHT DIRECTION

[1783] A method as in the parent innovation wherein the font family hasfont shapes designed for display with higher sub-pixel resolution in thewidth direction than height direction relative to said characters.

[1784] OPTIMIZATION INCLUDES HINTING WHICH ADJUSTS OUTLINE SHAPEBOUNDARIES AT A RESOLUTION AT LEAST AS HIGH AS SUBPIXEL RESOLUTION

[1785] A method as in the parent innovation wherein the fontoptimization includes hinting which adjusts character shape boundariesat a resolution at least as high as the subpixel resolution.

[1786] FONT FAMILY HAS CHARACTER SHAPES WITH A HIGHER HEIGHT TO WIDTHRATIO THAN NORMAL FONTS

[1787] A method as in the parent innovation wherein the font family hasfont shapes which have a higher height to width ratio than most normalfonts.

[1788] MAJORITY OF CHARACTER SHAPES IN FONT FAMILY ARE AT LEAST TWICE ASHIGH AS THEY ARE WIDE

[1789] A method as in the parent innovation wherein the majority ofcharacter shapes in the font family are at least twice as high as theyare wide.

[1790] SIZE DETERMINATION INCREASES SIZES OF SMALLER FONTS RELATIVE TOLARGER FONTS TO PREVENT SMALLER FONTS FROM BEING DISPLAYED BELOW A GIVENSIZE.

[1791] A method as in the parent innovation wherein:

[1792] the digital content includes different portions of text intendedto be shown at different sizes; and

[1793] the determination of the size of scaled-down subpixel-optimizedcharacter representations includes scaling down the size of text whichis intended to be shown at a smaller size than text which is intended tobe shown at larger size, so as to prevent the text intended to be shownat a smaller size from being displayed below a given size.

[1794] SHIFTS FONT FOREGROUND COLOR TOWARD GREYSCALE

[1795] A method as in the parent innovation wherein:

[1796] the digital content includes text which is intended to be shownwith a non-grayscale foreground color; and

[1797] the text is displayed in a subpixel-optimized manner with aforeground color which is closer to grayscale than intended.

[1798] SHIFTS REPLACES FOREGROUND COLOR WITH GREYSCALE COLOR

[1799] A method as in the parent innovation wherein the text which isintended to be displayed with a non-grayscale color is displayed with agrayscale color.

[1800] SHIFTS REPLACES FOREGROUND COLOR WITH AN NON-GREYSCALE COLORWHICH IS CLOSER TO GRAYSCALE

[1801] A method as in the parent innovation wherein the text which isintended to be displayed with a non-grayscale color is displayed with anon-grayscale color which is closer to grayscale than the intendedcolor.

[1802] REPLACE TEXT FOREGROUND OR BACKGROUND COLORS TO ALLOW BETTERSUB-PIXEL OPTIMIZATION

[1803] A method as in the parent innovation:

[1804] wherein the digital content can define foreground and backgroundcolors for given portion of text; and

[1805] further including displaying the given portion of text with adifferent background and/or foreground color than is defined by thedigital content to increase the ability of individual sub-pixels torepresent the extent to which they are covered by the outline of thegiven character shape they are used to represent.

[1806] RECEIVING DIGITAL CONTENT CONTAINING TEXT AND SPECIFYING INTENDEDFOREGROUND COLOR FOR TEXT, DISPLAYING TEXT WITH SUBPIXEL OPTIMIZED FONTBITMAPS USING COLORS FOREGROUND COLORS SHIPTED TOWARD GRAYSCALE

[1807] A method of displaying, on a sub-pixel addressed screen havingpixels comprised of separately addressable differently coloredsub-pixels, digital content including text, said method comprising:

[1808] receiving said digital content including said text; and

[1809] displaying on said screen characters of said text in which:

[1810] the pixel patterns representing each individual text characterrepresent an outlined defined shape of the character; and

[1811] the luminosity of each differently colored subpixel of a givenpixel used in the display of a portion of a given character's shape hasbeen derived as a function of the extent to which the outline of thegiven character's shape covers that individual sub-pixel.

[1812] wherein:

[1813]  the digital content includes text which is intended to be shownwith a non-grayscale foreground color; and

[1814]  the text is displayed in a subpixel-optimized manner with aforeground color which is closer to grayscale than intended.

[1815] SHIFTS REPLACES FOREGROUND COLOR WITH GREYSCALE COLOR

[1816] A method as in the parent innovation wherein the text which isintended to be displayed with a non-grayscale color is displayed with agrayscale color.

[1817] SHIFTS REPLACES FOREGROUND COLOR WITH AN NON-GREYSCALE COLORWHICH IS CLOSER TO GRAYSCALE

[1818] A method as in the parent innovation wherein the text which isintended to be displayed with a non-grayscale color is displayed with anon-grayscale color which is closer to grayscale than the intendedcolor.

[1819] RECEIVING DIGITAL CONTENT AND DISPLAYING ITS TEXT WITHNON-LINEARLY SUBPIXEL OPTIMIZED BITMAPS—PRODUCING SUB-PIXEL OPTIMIZEDIMAGE OF A CHARACTER SHAPES BY ASSOCIATING A LUMINOUSITY VALUE WITH EACHSUBPIXEL OF THAT IMAGE BOTH AS A FUNCTION THE PERCENT OF THE SUBPIXEL'SAREA WHICH IS COVERED BY THE SHAPE, AND AS A FUNCTION OF A COLORBALANCING FUNCTION DESIGNED TO DISTRIBUTE A PORTION OF LUMOSITY VALUESWHICH WOULD CAUSE COLOR IMBALANCE TO OTHER NEARBY PIXELS, WHERE THEEXTENT OF DISTRIBUTION OF LUMINOSITY VALUES IS A FUCNTION OF EXTENT TOWHICH THEY CAUSE COLOR IMBALANCE

[1820] A method of displaying, on a sub-pixel addressed screen havingpixels comprised of separately addressable differently coloredsub-pixels, digital content including text, said method comprising:

[1821] receiving said digital content including said text; and

[1822] displaying on said screen characters of said text in which:

[1823] the pixel patterns representing each individual text characterrepresent an outlined defined shape of the character; and

[1824] the luminosity of each differently colored subpixel of a givenpixel used in the display of a portion of a given character's shape hasbeen derived as a function of the extent to which the outline of thegiven character's shape covers that individual sub-pixel;

[1825] wherein:

[1826]  the font pixel pattern representing the shape of each individualtext character is produced by associating a luminosity value with eachsubpixel of the font pixel pattern as a function of:

[1827]  the percent of the area of the subpixel's area in the image thatis covered by the character shape; and

[1828]  a color balancing function designed to distribute a portion of asubpixel's luminosity values which otherwise would cause color imbalanceto nearby subpixels of different colors, where the percent of asubpixel's luminosity values that is so distributed is a function of thepercent of the subpixel's luminosity value which causes color imbalance.

[1829] MORE SPECIFIC NON-LINEAR METHOD—PRODUCING SUBPIXEL OPTIMIZEDIMAGE OF A SHAPE BY ADDING A PIXEL COVERAGE VALUE, DETERMINED ASFUNCTION OF COVERAGE OF ONE MORE SUB-PIXELS IN A PIXEL, TO LUMINANCE OFEACH OF ITS SUB-PIXELS, AND DISTRIBUTING THE DIFFERENCE BETWEEN EACHSUBPIXEL'S COVERAGE VALUE AND ITS PIXEL'S COVERAGE VALUE BETWEEN THELUMINANCES OF THAT SUB-PIXELS AND NEARBY SUB-PIXELS, AT LEAST SOME OFWHICH ARE IN A DIFFERENT PIXEL

[1830] A method as in the parent innovation wherein the font pixelpattern representing the shape of each individual text character isproduced by:

[1831] determining a coverage value for each subpixel with given pixelin the image area, which sub-pixel coverage value corresponds to thepercentage of the sub-pixel which is covered by said shape;

[1832] determining a pixel coverage value for the given pixel, which isa function of the coverage values calculated for one or more of thesub-pixels with the given pixel;

[1833] adding to a luminosity value calculated for each sub-pixel of thegiven pixel a value corresponding to the given pixel's coverage value;and

[1834] for each sub-pixel in the given pixel:

[1835] determining a differential coverage value for each sub-pixelcorresponding to the difference between the sub-pixel's coverage valueand the given pixel's coverage value;

[1836] adding to the luminosity value calculated for each givensub-pixel and one or more nearby sub-pixels a value corresponding to aportion of said the given sub-pixel's differential coverage value, whereat least some of said nearby sub-pixels are located outside of the givensub-pixel's pixel.

[1837] RECEIVING DIGITAL CONTENT CONTAINING TEXT AND DISPLAYING TEXTWITH SUBPIXEL OPTIMIZED FONT BITMAPS OPTIMIZED FOR READABILITY WHENSHOWN IN A SUBPIXEL OPTIMIZED MANNER AT A FONT SIZE OF LESS THAN 10PIXELS PER EM.

[1838] A method of displaying, on a sub-pixel addressed screen havingpixels comprised of separately addressable differently coloredsub-pixels, digital content including text, said method comprising:

[1839] receiving said digital content including said text; and

[1840] displaying on said screen characters of said text in which:

[1841] the pixel patterns representing each individual text characterrepresent an outlined defined shape of the character; and

[1842] the luminosity of each differently colored subpixel of a givenpixel used in the display of a portion of a given character's shape hasbeen derived as a function of the extent to which the outline of thegiven character's shape covers that individual sub-pixel.

[1843] wherein the font family used for the display of the text is afont family optimized for readability when shown in a subpixel optimizedmanner at a size of less than 10 pixels per EM.

[1844] DISPLAYING TEXT WITH FONT FAMINLY THAT HAS CHARACTER SHAPESOPTIMIZED FOR DISPLAY WITH HIGHER SUB-PIXEL RESOLUTION IN THE WIDTHDIRECTION THAN HEIGHT DIRECTION

[1845] A method as in the parent innovation wherein the font family hasfont shapes designed for display with higher sub-pixel resolution in thewidth direction than height direction relative to said characters.

[1846] OPTIMIZATION INCLUDES HINTING WHICH ADJUSTS OUTLINE SHAPEBOUNDARIES AT A RESOLUTION AT LEAST AS HIGH AS SUBPIXEL RESOLUTION

[1847] A method as in the parent innovation wherein the fontoptimization includes hinting which adjusts character shape boundariesat a resolution at least as high as the subpixel resolution.

[1848] FONT FAMILY HAS CHARACTER SHAPES WITH A HIGHER HEIGHT TO WIDTHRATIO THAN NORMAL FONTS

[1849] A method as in the parent innovation wherein the font family hasfont shapes which have a higher height to width ratio than most normalfonts.

[1850] MAJORITY OF CHARACTER SHAPES IN FONT FAMILY ARE AT LEAST TWICE ASHIGH AS THEY ARE WIDE

[1851] A method as in the parent innovation the majority of charactershapes in the font family are at least twice as high as they are wide.

[1852] RECEIVING DIGITAL CONTENT CONTAINING DIFFERENT TEXT INTENDED TOBE SHOWN AT DIFFERENT SIZES WHICH INDICATES AND DISPLAYING TEXT WITHSUBPIXEL OPTIMIZED FONT BITMAPS USING SIZE DETERMINATION INCREASES SIZESOF SMALLER FONTS RELATIVE TO LARGER FONTS TO PREVENT SMALLER FONTS FROMBEING DISPLAYED BELOW A GIVEN MINIMUM SIZE.

[1853] A method of displaying, on a sub-pixel addressed screen havingpixels comprised of separately addressable differently coloredsub-pixels, digital content including text, said method comprising:

[1854] receiving said digital content including said text; and

[1855] displaying on said screen characters of said text in which:

[1856] the pixel patterns representing each individual text characterrepresent an outlined defined shape of the character; and

[1857] the luminosity of each differently colored subpixel of a givenpixel used in the display of a portion of a given character's shape hasbeen derived as a function of the extent to which the outline of thegiven character's shape covers that individual sub-pixel.

[1858] wherein:

[1859]  the digital content includes different portions of text intendedto be shown at different sizes; and

[1860]  the determination of the size of scaled-down subpixel-optimizedcharacter representations includes scaling down the size of text whichis intended to be shown at a smaller size than text which intended to beshown at larger size, so as to prevent the text intended to be shown ata smaller size from being displayed below a given minimum size.

[1861] E-Group Innovations

[1862] LAYING OUT PORTION MEDIA REPRESENTED BY MARK-UP LANGUAGE USINGONE PIXEL RESOLUTION AND USING FONTS HAVING A DIFFERENT PIXEL RESOLUTIONTO DISPLAY THAT LAID-OUT AT A DIFFERENT RESOLUTION

[1863] DOING SAME WITH IMAGES

[1864] DIGITAL CONTENT IS A WEB PAGE

[1865] DO LAYOUT USING FONT METRICS, WHICH DO NOT CORRESPOND TO ACTUALSIZE AT WHICH FONTS WILL BE SHOWN ON SCREEN

[1866] USER CAN VARY VIRTUAL RESOLUTION AT WHICH DIGITAL CONTENT IS LAIDOUT

[1867] USER CAN VARY ACTUAL RESOLUTION AT WHICH A PORTION OF VIRTUALLAYOUT WHICH IS DISPLAYED

[1868] LAYING OUT FONT IN A SCREEN REPRESENTATION AT A GIVEN RESOLUTIONUSING A GIVEN FONT METRIC, DRAWING SCREEN AT A DIFFERENT RESOLUTIONUSING FONTS BITMAPS WHICH HAVE A RESOLUTION APPROPRIATE FOR DIFFERENTRESOLUTION AND DIFFERENT FONT METRIC THAN THAT AT WHICH FONTS WERE LAIDOUT

[1869] FONT METRICS USED FOR LAYOUT ARE THOSE FOR FONTS DESIGNED FOR THEDIFFERENT RESOLUTION

[1870] USE OF REMOTE PROCESS TO DO LAYOUT-USE WITH SUB-PIXELOPTIMIZATION

[1871] USE FOR WEB BROWSING

[1872] PERFORMING VIRTUAL LAYOUT THAT DETERMINES THE POSITON OF DIGITALCONTENT'S AND IMAGES AT A FIRST PIXEL SIZE IN A VIRTUAL PIXEL SPACE ANDTHEN DISPLAYING LAID OUT SINGLE LINE TEXT STRINGS AND IMAGES AT SMALLERPIXEL SIZE AT CORRESPONDING LOCATIONS IN A SMALLER PIXEL SPACE

[1873] A method of displaying digital content comprising:

[1874] performing a virtual layout of the position of the digitalcontent's visible text and images in a virtual space having a virtualhorizontal and vertical pixel resolution, including:

[1875] treating each such image as having a virtual layout size in saidvirtual layout;

[1876] treating each character in the visible text as having a virtualhorizontal and vertical pixel size;

[1877] flowing the visible text across line boundaries by breakingportions of text which cross a line boundary into separate single linecharacter strings, each of which fits on a line;

[1878] downloading information describing the images, single linecharacter strings, and their locations in said layout to a browsersystem; and

[1879] displaying on the browser system the text and image elements ofsaid digital content at an actual pixel resolution which is differentthan said virtual resolution by a horizontal scale factor and a verticalscale factor, including:

[1880]  displaying both said images and single line character strings atdisplay screen locations corresponding to the locations at which theyhave been laid out in said virtual space, adjusted in both thehorizontal and vertical direction by said horizontal and verticalscaling factors, respectively;

[1881]  representing each of said images in said display by an imagewhich has been scaled down from the image's virtual layout size by saidhorizontal and vertical scaling factor;

[1882]  representing individual characters in the single line textstrings by a pixel pattern which has a size that differs from thecharacter's virtual horizontal and vertical pixel size by saidhorizontal and vertical scale factors.

[1883] GIVEN SIZE OF IMAGE IS THEIR ORIGINAL RECEIVED SIZE

[1884] A method as in the parent innovation wherein:

[1885] the digital content is received by said method containing imagebitmaps having a given pixel resolution

[1886] the virtual layout size of an image is the given pixel resolutionat which those images were received.

[1887] SUBSTITUTING FONTS WITH FONTS HAVING DIFFERENT METRICS BEFOREVIRTUAL LAYOUT, AND PERFORM LAYOUT USING SUBSTITUTED FONT'S METRICS

[1888] VITURAL LAYOUT IS PERFORMED ON COMPUTER REMOTE TO BROWSER HAVINGSCREEN AND IMAGES, IMAGE POSITIONS, AND TEXT POSITIONS ARE DOWNLOADED TOBROWSER

[1889] A method as in the parent innovation wherein:

[1890] said displaying of both images and single line character stringsis performed on a browser computer;

[1891] said virtual layout is performed on a computer remote from thebrowser computer; and

[1892] said remote computer downloads to the browser computer saidimages and said display screen locations for the display of images andsingle line character strings.

[1893] REMOTE COMPUTER THAT PERFORMS LAYOUT IS A PROXY SERVER

[1894] A method as in the parent innovation wherein said remote computerwhich performs said virtual layout is a proxy server which is remotefrom both the browser computer and computers on which a web page islocated.

[1895] USER CAN VARY VIRTUAL RESOLUTION AT WHICH DIGITAL CONTENT IS LAIDOUT

[1896] USER CAN VARY ACTUAL RESOLUTION AT WHICH A PORTION OF VIRTUALLAYOUT WHICH IS DISPLAYED

[1897] USER CAN VARY VIRTUAL RESOLUTION AT WHICH DIGITAL CONTENT IS LAIDOUT

[1898] USER CAN VARY ACTUAL RESOLUTION AT WHICH A PORTION OF VIRTUALLAYOUT WHICH IS DISPLAYED

[1899] RECEIVING DIGITAL CONTENT, SCALING DOWN IMAGES AND/OR FONTS ANDTHEN LAYING THEM OUT AT A SMALLER SIZE, DISPLAYING SCALED DOWN FONTSWITH BITMAPS

[1900] A method of displaying a web page comprising:

[1901] scaling down the pixel size of one or more images of the webpage;

[1902] scaling down the font metrics associated with the web page'svisible text;

[1903] performing a layout of the position of the web page's visibletext and images in a display space having a given horizontal andvertical pixel resolution, including:

[1904] treating each such image as having a said scaled down size insaid layout;

[1905] treating each character as having a scaled down pixel size insaid layout;

[1906] flowing the visible text across line boundaries by breakingportions of text which cross a line boundary into separate single linecharacter strings, each of which fits on a line; and

[1907] displaying both said images and single line character strings atlocations corresponding to the locations at which they have been laidout in said display space;

[1908] representing each of said images in said display by a scaledimage which has the scaled down pixel size used in said layout;

[1909] representing individual characters in the single line textstrings by a pixel pattern which has the character's scaled down pixelsize used in said layout.

[1910] SCALING DOWN OF OF IMAGE INCLUDES SUB-PIXEL OPTIMIZATION

[1911] A method as in the parent innovation wherein:

[1912] said displaying of both said images and single line characterstrings is performed on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels; and

[1913] said scaling down of the pixel size images includes determiningthe luminosity of each differently colored sub-pixel of a given pixel inthe scaled image based on the amount of the luminosity of thatsub-pixel's color found in a respective different portion of a higherresolution representation of the image.

[1914] BITMAPS USED TO DISPLAY TEXT HAVE BEEN SUB-PIXEL OPTIMIZED

[1915] A method as in the parent innovation wherein:

[1916] the displaying of both said images and single line characterstrings is performed on a sub-pixel addressed screen having pixelscomprised of separately addressable differently colored sub-pixels;

[1917] the pixel patterns representing each individual text characterrepresent an outlined defined shape of the character; and

[1918] the luminosity values of each differently colored sub-pixel of agiven pixel in the pixel pattern used to represent a given textcharacter has been determined based on the extent to which the portionof the representation of the outline of the character's shape thatcorresponds to subpixel is covered by the character's outline definedshape.

[1919] SUBSTITUTING FONTS IN DIGITAL CONTENT WITH FONTS WHICH HAVEDIFFERENT METRICS

[1920] SUBSTITUTING FONTS IN DIGITAL CONTENT WITH FONTS OPTIMIZED FORDISPLAY AT NON-SQUARE RESOLUTION

[1921] SUBSTITUTING FONTS IN DIGITAL CONTENT WITH FONTS OPTIMIZED FORDISPLAY AT 10 PIXELS PER EM OR BELOW

[1922] FONTS OPTIMIZED FOR 10 PIXELS PER EM OR BELOW

[1923] SUBSTITUTING FONTS IN DIGITAL CONTENT WITH SUBPIXEL OPTIMIZEDFONTS

[1924] CHANGING relative FONT SIZE OF SMALL FONTS TO MAKE THEM MOREREADABLE AT SMALL SIZE

[1925] SCALING DOWN OF FONTS INCREASES THE SIZE OF SMALLER FONTSRELATIVE TO LARGER FONTS TO PREVENT SMALLER FONTS FROM BEING DISPLAYEDBELOW A GIVEN SIZE.

[1926] DIGITAL CONTENT IS A WEB PAGE

[1927] DIGITAL CONTENT IS A VIRTUAL SCREEN IMAGE CREATED BY ANAPPLICATION

[1928] F-Group Innovations

[1929] DISPLAYING ONE LAYOUT OF WEB PAGE AT EACH OF DIFFERENT SCALEFACTORS, WITH DIFFERENT PIXEL RESOLUTION BITMAPS USED FOR DISPLAY OFIMAGES AND FONT BITMAPS AT EACH DIFFERENT SCALE FACTOR, AND SHAPE ANDPIXEL ALIGNMENT OF SAME CHARACTER IN FONT BITMAPS AT DIFFERENT SCALEFACTORS BEING VARIED TO IMPROVE READABILITY AT EACH SUCH DIFFERENT FONTSIZE

[1930] 1. A method of displaying a web page comprising:

[1931] accessing a web page's content including one or more images andone or more strings of displayable text;

[1932] laying out the web page in a layout space having a horizontal anda vertical layout resolution, so as to determine a layout position foreach of said images and each displayable character of said strings insaid layout space, including:

[1933]  treating said images and said displayable characters as havingrespective layout sizes in said layout space;

[1934]  flowing displayable characters of said strings of across lineboundaries, based on the layout size of said displayable characters, bybreaking portions of strings that cross a line boundary into separatesingle line strings, each of which fits on a single line in said layoutspace; and

[1935]  displaying at least a portion of said laid out web page on adisplay screen at a selected scale factor, including:

[1936] displaying both said images and single line character strings atlocations in said display corresponding to the positions at which theyhave been laid out in said layout space, scaled as a function of saidselected scale factor;

[1937] representing each of said images in said display by acorresponding bitmap in said display that has a pixel size relative tothe image's layout size determined as a function of said selected scalefactor; and

[1938] representing a given single line strings by an image composedfrom a plurality of separate font bitmaps representing the characters insaid string, where the image of an individual character of said stringhas a pixel size relative to the character's layout size determined as afunction of said selected scale factor;

[1939] wherein:

[1940]  said display of a given portion of said laid out web page isperformed at each of at least two different selected scale factors; and

[1941]  the shape and pixel alignment of a character represented by oneof said font bitmap at a given scale factor has been selected to improvereadability as a function of the size of said font bitmap used torepresent the character at the given scale factor, causing a givencharacter in a given string in two displays of a given portion of saidweb page layout performed at different selected scale factors to bedisplayed with font bitmaps of different pixel size that represent thegiven character with different shapes and pixel alignments.

[1942] RELATIVE SPACING BETWEEN CHARACTERS CHANGED AT DIFFERENT SCALEFACTORS TO COMPENSATE FOR CHANGES IN RELATIVE WIDTH OF CHARACTERS ATSUCH DIFFERENT SCALE FACTORS

[1943] 2. A method as in Innovation 1 wherein:

[1944] said differences in the shape and pixel alignment of character atsaid different scale factors cause the relative horizontal width of thefont bitmaps of some characters to change at different scale factors;and

[1945] the relative spacing between individual characters in a givensingle line strings is changed when displayed at different scale factorsto compensate for such change in relative character width.

[1946] FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND ALIGNMENTHAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE BOUNDARIES WITH PIXELBOUNDARIES

[1947] 3. A method as in Innovation 1 wherein:

[1948] the font bitmaps used to represent text at each of said differentscale factors are anti-aliased bitmaps that assign a color value to agiven screen pixel as a graded function of a coverage value representingthe percent of the given pixel that is covered by a character shapebeing represented by the font bitmap; and

[1949] the shape and pixel alignment of a given character represented bya different font bitmap at each of said different scale factors has beenselected to increase the degree of alignment of edges of the charactershape with pixel boundaries of the font bitmap used at each such thescale factor.

[1950] FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL COVERAGEVALUE AND COLOR BALANCING

[1951] 4. A method as in Innovation 3 wherein:

[1952] the screen on which the displays are drawn has pixels comprisedof a given arrangement of separately-addressable, differently-coloredsubpixels;

[1953] the anti-aliased font bitmaps used to compose the image of textin said displays are subpixel-optimized bitmaps that assign a luminosityvalue to each given subpixel of a screen pixel having said givenarrangement of differently-colored subpixels as a function of:

[1954] a coverage value representing the percent of the given subpixelthat is covered by a character shape being represented by the fontbitmap;

[1955] in the case of at least some subpixels of said font bitmaps, acolor balancing distribution of a percent of the given subpixel'scoverage value from said coverage value to coverage values of nearbysubpixels, including subpixels of different color, made to a preventcolor imbalance that would result from the difference between the givensubpixel's coverage value and the coverage values of a given set of oneor more nearby subpixels of different colors; and

[1956] in the case of at least some subpixels of said font bitmaps, sucha color balancing distribution to the given subpixel's coverage value ofa portion of coverage values from one or more nearby subpixels.

[1957] COLOR BALANCING DISTRIBUTES ONLY PORTION OF A SUBPIXEL'S COVERAGEVALUE THAT CAUSES COLOR IMBALANCE WITHIN THE SUBPIXEL'S PIXEL

[1958] 5. A method as in Innovation 4 wherein said color balancingdistributions only distribute portions of a subpixel's coverage valuethat causes color imbalance within the whole pixel of which it is part.

[1959] FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS HAVE ASHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE READABILITY AT SUCH ASMALL SIZE

[1960] 6. A method as in Innovation 3 wherein:

[1961] said anti-aliased font bitmaps used to represent text at oneselected scale factor include small font bitmaps having a small fontsize of eight pixels per em or less; and

[1962] the shape and pixel alignment of characters represented in saidsmall font bitmaps have been selected as a function of said small fontsize to increase the degree of alignment of edges of the character shapewith pixel boundaries of the small font bitmap.

[1963] FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN ADVANCEWIDTH OF 4 PIXEL COLUMNS OR LESS

[1964] 7. A method as in Innovation 6 wherein the font bitmaps of saidsmall font size represent a majority of characters of the Roman alphabetwithin an advance width of 4 pixel columns or less.

[1965] WITH X-HEIGHT GREATER THAN 4 PIXELS

[1966] 8. A method as in Innovation 7 wherein the font bitmaps of saidsmall font size represent a majority of lowercase letters with anx-height greater than 4 pixels.

[1967] USER ALLOWED TO SUCCESSIVELY SELECTED DIFFERENT SCALE FACTORS ANDDISPLAY IS PERFORMED AT EACH SELECTED SCALE FACTOR

[1968] 9. A method as in Innovation 1:

[1969] including providing a user interface that allows a user to selecta succession of different scale factors selected from among a set of atleast two different selectable scale factors; and

[1970] wherein said display is performed at each of said successivelyselected scale factors.

[1971] AT LEAST TWO SCALE FACTORS CAUSE DISPLAY TO SHOW IMAGES AT SIZESMALLER THAN THAT INDICATED BY WEB PAGE

[1972] 10. A method as in Innovation 1 wherein:

[1973] the web pages content indicates pixel sizes at which images areto be displayed; and

[1974] at least two of said selected scale factors causes said displayto represent said images at pixel sizes smaller that said indicatedsizes.

[1975] SCALE FACTOR HAVE DIFFERENT VALUE IN HORIZONTAL AND VERTICALDIRECTIONS

[1976] 11. A method as in Innovation 1 wherein one or more of saidselected scale factors have different component values in the horizontaland vertical directions, causing the scaling of images and characters tobe different in those different directions.

[1977] SCALE FACTOR HAVE SAME VALUE IN HORIZONTAL AND VERTICALDIRECTIONS

[1978] 12. A method as in Innovation 1 wherein one or more of said scalefactors have the same values in the horizontal and vertical directions,causing the scaling of images and characters to be the same in thosedifferent directions.

[1979] MAGES ARE SUB-PIXEL OPTIMIZATION AT ONE SCALE FACTOR WITHLUMINANCE ASSIGNED TO EACH SUBPIXEL BEING A FUNCTION OF LUMINANCE OF ITSCOLOR VALUE IN A CORRESPONDING WINDOW IN HIGHER RESOLUTION IMAGE

[1980] 13. A method as in Innovation 1 wherein:

[1981] said display screen has pixels each comprised of a givenarrangement of separately-addressable, differently-colored,differently-positioned subpixels; and

[1982] the bitmap used to represent a given image accessed as part of aweb page in said display of a portion of a web page's layout at one ofsaid selected scale factor is a subpixel-optimized image that:

[1983] is scaled relative to the given accessed imaged as a function ofsaid selected scale factor; and

[1984] assigns a luminosity to each differently-colored subpixel in thedisplay of such an image as a function of the amount of luminosity ofthe given subpixel's color in a source image window in the givenaccessed image that is associated with the given subpixel;

[1985] where the source image window associated with each given subpixelhas a position relative to the accessed image that corresponds to theposition of the given subpixel relative to the subpixel-optimized image,such that the position of the source image windows associated withdifferent subpixels of a given pixel vary in correspondence with thedifferent positions of such subpixels relative to said pixel.

[1986] IMAGES ARE SUBPIXEL-OPTIMIZED AT TWO DIFFERENT SCALE FACTORS,USING SOURCE IMAGE WINDOWS WITH DIFFERENT SIZES AND POSITIONS RELATIVETO THE SOURCE IMAGE

[1987] 14. A method as in Innovation 13 wherein:

[1988] the bitmaps used to represent a given accessed image in saiddisplay at each of two different selected scale factor are two differentsubpixel-optimized images; and

[1989] these two different subpixel optimized images assigns luminosityvalues to subpixels based on source image windows that have differentsizes and positions relative to the given accessed image.

[1990] DISPLAY COMPUTER REQUESTS WEB PAGE FROM A REMOTE COMPUTER OVER ACOMPUTER NETWORK, REMOTE COMPUTER ACCESSES WEB PAGE, LAYS IT OUT, ANDDOWNLOADS IMAGES, STRINGS, LINKS, AND RELATIVE POSITIONS TO DISPLAYCOMPUTER, WHICH DISPLAYS THEM.

[1991] 15. A method as in Innovation 1 wherein:

[1992] said displays at said different scale factor are performed on aclient computer;

[1993] the client computer requests a web page from a remote computerover a computer network;

[1994] said remote computer performs said accessing of the web page;

[1995] said remote computer performs said laying out of said web page;

[1996] said remote computer downloads a representation of said images,strings, and layout positions over said computer network to said clientcomputer; and

[1997] said client computer performs said display at each of saiddifferent scale factors by drawing said images, strings, and links atpositions and sizes on said screen corresponding to those in said layoutperformed on said remote computer as scaled as a function of saiddifferent scale factors.

[1998] CLIENT COMPOSES IMAGES OF SAME STRINGS AT DIFFERENT SCALE FACTORSUSING DIFFERENTLY SIZED FONT BITMAPS HAVING CHARACTER SHAPES AND PIXELALIGNMENTS SEPARATELY SELECTED FOR IMPROVED READABILITY AT SUCHDIFFERENT BITMAP SIZES

[1999] 16. A method as in Innovation 15 wherein said client computerperforms said composition of the representation of a given single linestrings from a plurality of font bitmaps at each of said different scalefactors.

[2000] QUICKZOOM—REMOTE COMPUTER DOWNLOADS SCALED BITMAP OF IMAGESSCALED DOWN BY A FIRST SCALE FACTORS, AND CLIENT DISPLAY WEB PAGE ATFIRST SCALE FACTOR, CLIENT RESPONDS TO USER INPUT TO DISPLAY IMAGE ATSECOND SCALE FACTOR BY DISPLAYING LAYOUT A SECOND SCALE FACTOR WITHOUTDOWNLOAD OF IMAGES SCALED FOR SECOND SCALE FACTOR

[2001] 17. A method as in Innovation 15 wherein:

[2002] said remote computer scales the images accessed as part of saidweb page to produce said scaled bitmaps used to represent said one ormore images in the display at a first of said two scale factors, whichscaled bitmaps are transmitted to said client computer as part of saiddownload;

[2003] said client performs said display for said first scale factor,including representing images in said display with the downloaded imagebitmaps that have been scaled for said first scale factors;

[2004] said client computer has a user interface that allows a user toselect to have the layout displayed at a second of said scale factors;and

[2005] said client computer responds to a selection to display thelayout at said second scale factor by displaying the layout of said webpage at said second scale factor without a download from said remoteclient of images scaled for display at said second scale factor.

[2006] CLIENT TAKES IMAGES DOWNLOADED TO IT FOR FIRST SCALE FACTOR ANDRE-SCALES THEM TO PIXEL SIZE APPROPRIATE FOR SECOND SCALE FACTOR ANDDISPLAYS LAYOUT AT SECOND SCALE FACTOR WITH SUCH RESCALED BITMAPS UNTILIT RECEIVES DOWNLOAD WITH BITMAP SCALED BY REMOTE COMPUTER FOR SECONDSCALE

[2007] 18. A method as in innovation 17 wherein said client's display ofthe layout of said web page at a second scale factor without downloadfrom said remote client of images scaled for said second scale factorincludes:

[2008] re-scaling said images scaled for display at said first scalefactor to a size appropriate for display at said second display factor;and

[2009] displaying said re-scaled images at positions in said displayperformed at said second scale factor corresponding to the layoutpositions of said images at said second scale factor.

[2010] CLIENT UPLOADS TO REMOTE COMPUTER INFORMATION THAT CLIENT SHOULDDOWNLOAD IMAGES SCALED FROM WEB PAGE'S IMAGES AT SECOND SCALE FACTOR,AND WHEN CLIENT RECEIVES SUCH IMAGES IT USES THEM TO REPLACE THE IMAGESIT HAS RESCALED IN SAID DISPLAY OF THE LAYOUT AT SAID SECOND SCALEFACTOR.

[2011] 19. A method as in innovation 18 wherein:

[2012] the client computer also responds to said selection to displaythe layout at said second scale factor by uploading to the remotecomputer an indication that the remote client should download imagesscaled for said second scale factor;

[2013] in response to the uploading of such an indication, the remotecomputer:

[2014] scales the images accessed as part of said web page to producebitmaps scaled for use in the display at said second scale factor; and

[2015] downloads the images scaled for the second scale factor to saidclient computer; and

[2016] after the images scaled for second scale factor have beendownloaded, the client computer uses them to replace, in said display ofthe layout at said second scale factor, the previously displayed bitmapsthat had been re-scaled by the client computer.

[2017] ZOOM TO FIT—USER CAN SELECT A DIFFERENT SCALE FACTOR BY DRAGGINGA POINTING DEVICE ACROSS A SELECTED PART OF WEB PAGE LAYOUT SHOWN AT AFIRST SCALE FACTOR, CAUSING SELECTED PART TO BE SHOWN A SECOND SCALEFACTOR CAUSES IT TO FIT SCREEN

[2018] 20. A method as in innovation 1 further including:

[2019] providing a user interface that allows a user to drag a pointingdevice across a selected part of said web page's layout shown on saidscreen at a first scale factor; and

[2020] responding to such a drag by performing a zoom-to-fit display ofsaid selected part of the web page layout at a second scale factorselected to cause said selected part of said web page layout to have asize that fits the size of said screen.

[2021] IF USER DRAGS ACROSS BOUNDARY OF DISPLAY SHOWN AT FIRST SCALEFACTOR, DISPLAY SCROLLS, ALLOWING USER TO SELECT PART OF THE WEB PAGELAYOUT EITHER TOO LARGE OR IMPROPERLY POSITIONED TO FIT ON SCREEN ATSTART OF THE DRAG

[2022] 21. A method as in innovation 20 wherein:

[2023] the user interface that allows a user to drag a pointing deviceacross a selected part of the web page layout responds to such a dragthat extends across a boundary associated with a given edge of saidscreen by scrolling, onto said screen, across said given screen edge,portions of the web page layout previously off said screen showndisplayed at said first scale factor, so as to allow said drag to selectas said selected part of the web page layout a part that was either toolarge or not properly positioned to fit entirely within said screen whenthe drag first started; and

[2024] said responding to such a drag performs a zoom-to-fit displayusing a second scale factor that fits to the screen size the part of theweb page selected by such a drag.

[2025] CLICK TO ZOOM

[2026] 22. A method as in innovation 1 further including:

[2027] providing a user interface that allows a user to click a pointingdevice on a selected part of said web page's layout shown on said screenat a first scale factor; and

[2028] responding to such a click by performing a display of saidselected part of the web page layout at a second scale factor thatcauses said selected part to be shown at a larger size.

[2029] DRAG SCROLL AT IN DISPLAYS AT EACH OF DIFFERENT SCALE FACTORS

[2030] 23. A method as in innovation 1 further including:

[2031] providing a user interface that allows a user to drag a pointingdevice across a part of said web page's layout shown on said screen at afirst scale factor; and

[2032] responding to such a drag that extends across a boundaryassociated with a given edge of said screen by scrolling, onto saidscreen, across said given screen edge, portions of the web page layoutpreviously off said screen shown displayed at said first scale factor.

[2033] ZOOMCLICK—SCREEN ZOOMS ON PORTION OF SCREEN USER MOUSEDOWNS ON,ALLOWS CURSOR TO MOVE WHILE MOUSE IS DOWN, CLICK IS NOT RECORDED UNTILUSER MOUSEUPS, THEN RETURNS DISPLAY TO FORMER SIZE

[2034] 24. A method as in innovation 1 further including:

[2035] responding to a press of a pointing device, made at a firstposition relative to a first portion of the web page layout displayed onsaid screen at a first scale factor, by replacing all or part of thedisplay of said first layout portion with a display of a second, smallerportion of said web page layout, which includes said first position, ata second scale factor that causes said smaller portion to be shown at alarger size;

[2036] responding to a subsequent releases of said press, made at aselected position relative to layout shown at said second scale factor,by:

[2037] acting as if a mouse click had occurred at said selected positionrelative to said web page layout; and

[2038] replacing the display of said smaller portion on said screen witha display of the web page layout at said first scale factor.

[2039] DISPLAY OF SMALLER PORTION OF WEB PAGE AT SECOND SCALE FACTORTOTALLY REPLACES DISPLAY OF WEB PAGE AT FIRST SCALE FACTOR

[2040] 25. A method as in innovation 24 wherein said replacement of allor part of the display of said first portion of said web page layoutwith a display of said smaller portion of said layout during the pressof said pointing device replaces all of the display of said firstportion of said layout.

[2041] DISPLAYING CURSOR IN ZOOMED VIEW, INDICATING EFFECTIVE POSITIONOF CURSOR RELATIVE TO LAYOUT, INCLUDING SHOWING ANY MOVEMENT OF CURSORBETWEEN PRESS AND RELEASE

[2042] 26. A method as in innovation 24 further including displaying acursor that indicates the position of the pointing device relative tothe portion of said web page layout displayed at said second scalefactor during said press, to inform a user of the location that would betreated as said selected position if the pointing device were releasedat its current location.

[2043] DISPLAY IS TOUCH SCREEN DISPLAY, AND CURSOR IS DISPLAYED SLIGHTLYABOVE POINTING DEVICE SO IT CAN BE SEEN OVER POINTING DEVICE

[2044] 27. A method as in innovation 26 wherein:

[2045] said display is a touch screen display; and

[2046] said cursor is displayed above the point at which the screen isbeing touched by a pointing device so the cursor can be seen over thatpointing device.

[2047] FIRST SELECTED LAYOUT POSITION HAS SUBSTANTIALLY SAME SCREENPOSITION AFTER ZOOM

[2048] 28. A method as in innovation 24 wherein said first layoutposition, which corresponds to the layout position of said pointingdevice at the time of said press, has substantially the same screenposition in said display at said second scale made in response to saidpress as it did in the display at said first scale at the time saidpress was made.

[2049] IF USER MOVES POINTING DEVICE DURING PRESS ACROSS BOUNDARY OFDISPLAY SHOWN AT SECOND SCALE FACTOR, DISPLAY SCROLLS, ALLOWING USER TORELEASE PRESS IN PORTION OF DISPLAY NOT ORIGINALLY SHOWN IN SECOND SCALEDISPLAY

[2050] 29. A method as in innovation 24 further including responding tomovement of the pointing device during said press that extends across aboundary associated with a given edge of said screen by scrolling, ontosaid screen, across said given screen edge, portions of the web pagelayout previously off said screen shown displayed at said second scalefactor, so as to allow said movement to select as said selected positionrelative to the layout a position that was not shown on said screen atsaid second scale when said movement during the press first started.

[2051] ZOOM OUT WITH GREEKING

[2052] 30. A method as in innovation 1 further including:

[2053] performing a different display of a given portion of said laidout web page that is similar to that performed for said at least twodifferent scale factors, except that said different display:

[2054] is performed for a zoomed-out scale factor that causes the sizeof one or more single line text strings on said screen to be too smallto be read; and

[2055] represents said one or more single line string with a greekedbitmap that indicates the size and location of said string in saidlayout.

[2056] REFLOW AT LARGER FONT SIZE THAT FILLS ⅔ OF SCREEN WIDTH OF WEBTEXT SELECTED WITHIN ONE OF MULTIPLE COLUMNS—

[2057] 31. A method of displaying a web page comprising:

[2058] accessing a web page's content, including one or more images, aplurality of strings of displayable text, and a plurality of horizontalposition indications that indicate that different ones of said stringsare to be displayed in different horizontal columns;

[2059] performing a first layout of the web page, so as to determine afirst layout position for each of said images and each displayablecharacter of said strings, in which the layout positions of thedisplayable characters of different strings are placed in differenthorizontal columns in response to said horizontal position indications;and

[2060] drawing, on a screen, a first display of said web page, whichdisplays the images and strings of said first layout at relativepositions corresponding to said first layout positions;

[2061] providing a user interface that allows a user to select a portionof text shown within a given one of said columns in said first display;

[2062] performing a second layout of said selected portion of text,including re-flowing the selected text across the lines of a new columnat one or more font sizes that are larger relative to the width of thelines of said new column than the font sizes of the same texts hadrelative to the width of the selected text's column in said firstlayout; and

[2063] drawing, on said screen, a second display of said web page, whichdisplays said new column of text with the line breaks determined in saidsecond layout, at a scale that causes said new column to fill at leasttwo thirds of the width of said screen.

[2064] USER SELECTS AT WHICH OF DIFFERENT SIZES TO DISPLAY COLUMN OFTEXT [SUP]

[2065] 32. A method as in Innovation 31 wherein:

[2066] said user interface allows a user to select from among aplurality of text display sizes for the display of text in said newcolumn of text; and

[2067] wherein said second layout selects the size at which the selectedtext is re-flowed across the lines of the new column relative to saidline widths as a function of said selected text display size.

[2068] FIRST DISPLAY SHOWS IMAGES AT SCALED-DOWN PIXEL SIZE AND TEXT AT10 PIXEL'S PER EM OR LESS TO ALLOW MORE OF SAID FIRST LAYOUT TO APPEARON SAID SCREEN AT ONE TIME

[2069] 33. A method as in Innovation 31 wherein said first displayrepresents images accessed as part of said web page at a scaled-downpixel size and represents text strings at a font size of 10 pixels perem or less to allow more of said first layout to appear on said screenat one time, so as to make it easier for the user to select text fromdifferent columns in said first layout.

[2070] FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND ALIGNMENTHAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE BOUNDARIES WITH PIXELBOUNDARIES

[2071] 34. A method as in Innovation 33 wherein:

[2072] said text strings represented at a font size of 10 pixels per emor less have individual characters represented by anti-aliased fontbitmaps that assign a color value to a given screen pixel as a gradedfunction of a coverage value representing the percent of the given pixelthat is covered by a character shape being represented by the fontbitmap; and

[2073] the shape and pixel alignment of a character represented by sucha font bitmap has been selected to increase the degree of alignment ofedges of the character shape with pixel boundaries of the font bitmap asa function of the particular pixel size of each such a font bitmap.

[2074] FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL COVERAGEVALUE AND COLOR BALANCING

[2075] 35. A method as in Innovation 34 wherein:

[2076] the screen on which first and second displays are drawn haspixels comprised of a given arrangement of separately-addressable,differently-colored subpixels;

[2077] the anti-aliased font bitmaps used to represent said text stringsat 10 pixels per em or less are subpixel-optimized bitmaps that assign aluminosity value to each given subpixel of said screen as a function of:

[2078] a coverage value representing the percent of the given subpixelthat is covered by a character shape being represented by the fontbitmap;

[2079] in the case of at least some subpixels of said font bitmaps, acolor balancing distribution of a percent of the given subpixel'scoverage value from said coverage value to coverage values of nearbysubpixels, including subpixels of different color, made to a preventcolor imbalance that would result from the difference between the givensubpixel's coverage value and the coverage values of a given set of oneor more nearby subpixels of different colors; and

[2080] in the case of at least some subpixels of said font bitmaps, sucha color balancing distribution to the given subpixel's coverage value ofa portion of coverage values from one or more nearby subpixels.

[2081] COLOR BALANCING DISTRIBUTES ONLY PORTION OF A SUBPIXEL'S COVERAGEVALUE THAT CAUSES COLOR IMBALANCE WITHIN THE SUBPIXEL'S PIXEL

[2082] 36. A method as in Innovation 35 wherein said color balancingdistributions only distribute portions of a subpixel's coverage valuethat causes color imbalance within the whole pixel of which it is part.

[2083] FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS HAVE ASHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE READABILITY AT SUCH ASMALL SIZE

[2084] 37. A method as in Innovation 34 wherein:

[2085] said anti-aliased font bitmaps used to represent at least some ofsaid text strings in said first display include small font bitmapshaving a small font size of eight pixels per em or less; and

[2086] the shape and pixel alignment of characters represented in saidsmall font bitmaps have been selected as a function of said small fontsize to increase the degree of alignment of edges of the character shapewith pixel boundaries of the small font bitmap.

[2087] FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN ADVANCEWIDTH OF 4 PIXEL COLUMNS OR LESS

[2088] 38. A method as in Innovation 37 wherein the font bitmaps of saidsmall font size represent a majority of characters of the Roman alphabetwithin an advance width of 4 pixel columns or less.

[2089] WITH X-HEIGHT GREATER THAN 4 PIXELS

[2090] 39. A method as in Innovation 38 wherein the font bitmaps of saidsmall font size represent a majority of lowercase letters with anx-height greater than 4 pixels.

[2091] ZOOM OUT WITH GREEKED STRING REPRESENTATION

[2092] 40. A method as in innovation 31 wherein said first display ofsaid web page:

[2093] is performed at a zoomed-out scale that causes the size of one ormore text strings on said screen in said first display to be too smallto read; and

[2094] represents of a text of said one or more text strings with agreeked bitmap that indicates the size and location of said strings insaid layout.

[2095] LAYING OUT AND DISPLAYING WEB PAGE AT DIFFERENT RELATIVE LAYOUTSIZES IN WHICH IMAGES AND TEXT HAVE DIFFERENT SIZES RELATIVE TO THELAYOUT SPACE AND DIFFERENT PIXEL SIZES, AND IN WHICH TEXT FLOWSDIFFERENTLY ACROSS LINE BOUNDARIES

[2096] 41 A method of displaying a web page comprising:

[2097] accessing a web page's content, including one or more images andone or more strings of displayable text;

[2098] laying out the web page in a layout space having a horizontal anda vertical layout resolution, so as to determine a layout position foreach of said images and each displayable character of said strings insaid layout space, including:

[2099]  treating said images and said displayable characters as havingrespective layout sizes in said layout space;

[2100]  flowing displayable characters of said strings of across lineboundaries, based on the layout size of said displayable characters, bybreaking portions of strings that cross a line boundary into separatesingle line strings, each of which fits on a single line in said layoutspace; and

[2101]  displaying at least a portion of said laid out web page on adisplay screen at a given scale factor, including:

[2102] displaying both said images and single line character strings atlocations in said display corresponding to the positions at which theyhave been laid out in said layout space, scaled as a function of saidgiven scale factor;

[2103] representing each of said images in said display by acorresponding bitmap in said display that has a size relative to theimage's layout size determined as a function of said given scale factor;

[2104] representing a given single line strings by an image composedfrom a plurality of separate font bitmaps representing the characters insaid string, where the image of an individual character of said stringhas a pixel size relative to the character's layout size determined as afunction of said selected scale factor;

[2105] performing said layout and display of said web page at each of atleast two different relative layout sizes; -wherein:

[2106]  the layout performed at a first of said relative layout sizeslays out said images and strings at a first, relatively small, set ofrespective sizes relative to said layout space;

[2107]  the layout at a second of said relative layout sizes lays outsaid images and strings at a second, relatively large, set of respectivesizes relative to said layout space; and

[2108]  the given scale factor used in the displays performed at thefirst and second relative layout sizes is such that the images and textappear at smaller pixel sizes in the display of the layout performed atsaid first relative layout size and appear at larger pixel sizes in thedisplay of the layout performed at said second relative layout size; and

[2109]  causing text to be flowed across line boundaries differently atsaid different relative layout sizes.

[2110] DISPLAY COMPUTER REQUESTS WEB PAGE FROM A REMOTE COMPUTER OVER ACOMPUTER NETWORK, REMOTE COMPUTER ACCESSES WEB PAGE, LAYS IT OUT AT EACHOF SAID RELATIVE LAYOUT SIZES, AND DOWNLOADS IMAGES, STRINGS, LINKS, ANDRELATIVE POSITIONS ASSOCIATED WITH EACH SUCH LAYOUT TO DISPLAY COMPUTER,WHICH DISPLAYS THEM

[2111] 42. A method as in Innovation 41 wherein:

[2112] said displays at said different relative layout sizes areperformed on a client computer system;

[2113] the client computer system requests said web page from a remotecomputer system over a computer network;

[2114] said remote computer system performs said accessing of the webpage;

[2115] said remote computer system performs said laying out of said webpage at each of said relative layout sizes;

[2116] said remote computer system downloads a representation of saidimages, strings, and layout positions over said computer network to saidclient computer system for each of said relative layout sizes; and

[2117] said client computer system performs said display at each of saiddifferent relative layout sizes by drawing said images, strings, andlinks at relative positions and sizes on said screen corresponding tothose in said layouts performed on said remote computer.

[2118] CLIENT COMPOSES IMAGES OF SAME STRINGS AT DIFFERENT RELATIVELAYOUT SIZES

[2119] 43. A method as in Innovation 42 wherein said client computersystem performs said composition of the representation of single linestrings at each of said relative layout sizes from a plurality of fontbitmaps corresponding to the characters of said strings.

[2120] FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND ALIGNMENTHAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE BOUNDARIES WITH PIXELBOUNDARIES, AT LEAST AT FIRST RELATIVE LAYOUT SIZE

[2121] 44. A method as in Innovation 41 wherein:

[2122] at least in said display performed for the layout using saidfirst relative layout size, one or more of said single line strings arerepresented at a font size of 10 pixels per em or less and haveindividual characters represented by anti-aliased font bitmaps thatassign a color value to a given screen pixel as a graded function of acoverage value representing the percent of the given pixel that iscovered by a character shape being represented by the font bitmap; and

[2123] the shape and pixel alignment of a character represented by sucha font bitmap has been selected to increase the degree of alignment ofedges of the character shape with pixel boundaries of the font bitmap asa function of the particular pixel size of each such a font bitmap.

[2124] FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL COVERAGEVALUE AND COLOR BALANCING

[2125] 45. A method as in Innovation 44 wherein:

[2126] the screen on which displays are drawn has pixels comprised of agiven arrangement of separately-addressable, differently-coloredsubpixels;

[2127] the anti-aliased font bitmaps used to represent said text stringsat 10 pixels per em or less are subpixel-optimized bitmaps that assign aluminosity value to each given subpixel of said screen as a function of:

[2128] a coverage value representing the percent of the given subpixelthat is covered by a character shape being represented by the fontbitmap;

[2129] in the case of at least some subpixels of said font bitmaps, acolor balancing distribution of a percent of the given subpixel'scoverage value from said coverage value to coverage values of nearbysubpixels, including subpixels of different color, made to a preventcolor imbalance that would result from the difference between the givensubpixel's coverage value and the coverage values of a given set of oneor more nearby subpixels of different colors; and

[2130] in the case of at least some subpixels of said font bitmaps, sucha color balancing distribution to the given subpixel's coverage value ofa portion of coverage values from one or more nearby subpixels.

[2131] COLOR BALANCING DISTRIBUTES ONLY PORTION OF A SUBPIXEL'S COVERAGEVALUE THAT CAUSES COLOR IMBALANCE WITHIN THE SUBPIXEL'S PIXEL

[2132] 46. A method as in Innovation 45 wherein said color balancingdistributions only distribute portions of a subpixel's coverage valuethat causes color imbalance within the whole pixel of which it is part.

[2133] FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS HAVE ASHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE READABILITY AT SUCH ASMALL SIZE

[2134] 47. A method as in Innovation 44 wherein:

[2135] said anti-aliased font bitmaps include small font bitmaps havinga small font size of eight pixels per em or less; and

[2136] the shape and pixel alignment of characters represented in saidsmall font bitmaps have been selected as a function of said small fontsize to increase the degree of alignment of edges of the character shapewith pixel boundaries of the small font bitmap.

[2137] FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN ADVANCEWIDTH OF 4 PIXEL COLUMNS OR LESS

[2138] 48. A method as in Innovation 47 wherein the font bitmaps of saidsmall font size represent a majority of characters of the Roman alphabetwithin an advance width of 4 pixel columns or less.

[2139] WITH X-HEIGHT GREATER THAN 4 PIXELS

[2140] 49. A method as in Innovation 48 wherein the font bitmaps of saidsmall font size represent a majority of lowercase letters with anx-height greater than 4 pixels.

[2141] IMAGES ARE SUB-PIXEL OPTIMIZATION AT ONE RELATIVE LAYOUT SIZEWITH LUMINANCE ASSIGNED TO EACH SUBPIXEL BEING A FUNCTION OF LUMINANCEOF ITS COLOR VALUE IN A CORRESPONDING WINDOW IN HIGHER RESOLUTION IMAGE

[2142] 50. A method as in Innovation 41 wherein:

[2143] said display screen has pixels each comprised of a givenarrangement of separately-addressable, differently-colored,differently-positioned subpixels; and

[2144] the bitmaps used to represent a given image accessed as part of aweb page in said display of the layout performed at one given relativelayout size are subpixel-optimized images, each of which:

[2145] is scaled relative to the given accessed imaged as a function ofsaid one given relative layout size; and

[2146] assigns a luminosity to each differently-colored subpixel in thedisplay of such an image as a function of the amount of luminosity ofthe given subpixel's color in a source image window in the givenaccessed image that is associated with the given subpixel;

[2147] where the source image window associated with each given subpixelhas a position relative to the accessed image that corresponds to theposition of the given subpixel relative to the subpixel-optimized image,such that the position of the source image windows associated withdifferent subpixels of a given pixel varies in correspondence with thedifferent positions of such subpixels relative to said given pixel.

[2148] IMAGES ARE SUBPIXEL-OPTIMIZED AT BOTH RELATIVE LAYOUT SIZES,USING SOURCE IMAGE WINDOWS WITH DIFFERENT SIZES AND POSITIONS RELATIVETO THE SOURCE IMAGE

[2149] 51. A method as in Innovation 50 wherein:

[2150] the bitmaps used to represent a given accessed image in saiddisplays performed for both of said two different relative layout sizesare two different subpixel-optimized images; and

[2151] these two different subpixel optimized images assigns luminosityvalues to subpixels based on source image windows that have differentsizes and positions relative to the given accessed image.

[2152] 52. MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION

[2153] 52. A computer system comprising:

[2154] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 51; and

[2155] one or more processors for executing said instructions.

[2156] 53. MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE MEDIAINNOVATION

[2157] 53. A computer system comprising:

[2158] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 51.

[2159] DISPLAY OF WEB PAGE, INCLUDING LAYOUT OF WEB PAGE WITH A GIVENRESOLUTION, WHEN USER ZOOMS SO AS TO CHANGE RATIO OF DISPLAY RESOLUTIONTO LAYOUT RESOLUTION, PAGE IS RE-LAID OUT TO REFLECT CHANGE IN FONTMETRICS OF FONTS USED DISPLAY TEXT IN WEB PAGE AT DIFFERENT DISPLAYRESOLUTION, REFLOW TEXT TO ACCOMMODATE DIFFERENTLY HINTED TEXT ATDIFFERENT SCALE VIEWS OF WEB PAGE AT A GIVEN NOMINAL LAYOUT RESOLUTION

[2160] USING SUB-PIXEL OPTIMIZED TEXT IN DISPLAY

[2161] LAYOUT IS PERFORMED ON FIRST COMPUTER, LAYOUT INFORMATION ISDOWNLOADED TO A SECOND, BROWSER, COMPUTER, AND IS DISPLAYED ON BROWSERCOMPUTER

[2162] USER CAN SELECTS TO VARY ZOOM ON BROWSER, THIS SELECTION ISUPLOADED TO FIRST COMPUTER, FIRST COMPUTER RE-LAYS OUT WEB PAGE INRESPONSE TO CHANGE IN FONT METRICS RESULTING FROM CHANCE IN DISPLAYRESOLUTION

[2163] REMOTE PROCESS CAN DOWNLOAD REST OF ZOOMED PAGE WHICH CAN BECACHED.

[2164] DISPLAY OF WEB PAGE, INCLUDING LAYOUT OF WEB PAGE WITH A GIVENRESOLUTION, WHEN USER ZOOMS SO AS TO CHANGE RATIO OF DISPLAY RESOLUTIONTO LAYOUT RESOLUTION, PAGE IS NO RELAID TO REFLECT CHANGE IN FONTMETRICS OF FONTS USED DISPLAY TEXT IN WEB PAGE AT DIFFERENT DISPLAYRESOLUTION

[2165] ACCOMMODATE DIFFERENTLY HINTED TEXT AT DIFFERENT ZOOM SCALES BYADJUSTING SPACING BETWEEN WORDS IN INDIVIDUAL STRINGS

[2166] ACCOMMODATE DIFFERENTLY HINTED TEXT AT DIFFERENT ZOOM SCALES BYADJUSTING SPACING BETWEEN INDIVIDUAL CHARACTERS IN WORDS IN INDIVIDUALSTRINGS

[2167] LAYOUT IS PERFORMED ON FIRST COMPUTER, LAYOUT INFORMATION ISDOWNLOADED TO A SECOND, BROWSER, COMPUTER, AND IS DISPLAYED ON BROWSERCOMPUTER

[2168] USER CAN SELECTS TO VARY ZOOM ON BROWSER, THIS SELECTION ISUPLOADED TO FIRST COMPUTER

[2169] FIRST COMPUTER DETERMINES WHICH PORTION OF PRIOR LAYOUT IS INSELECTED ZOOMED VIEW AND DOWNLOADS THAT INFORMATION BROWSER, WHICHDISPLAYS IT USING FONTS OF A DIFFERENT SIZE TO REFLECT NEWLY SELECTEDZOOM

[2170] BROWSER DETERMINES WHICH PORTION OF PREVIOUSLY DOWNLOADED PAGE ISIN VIEW HAVING NEWLY ZOOM VALUE, AND REDISPLAYS IT USING FONTS OF ADIFFERENT SIZE TO REFLECT NEWLY SELECTED ZOOM

[2171] ZOOM-TO-FIT

[2172] A method of browsing the web comprising:

[2173] downloading a web page from across a computer network;

[2174] producing a first display of at least a portion of said web pageat a first scale;

[2175] responding to a user's selection of a given portion of said firstdisplay by producing a second display of a portion of said web pageincluding said selected portion, where said second display is at asecond scale automatically selected to cause the size of the portion ofsaid web page shown in said second display to correspond to the size ofsaid selected portion.

[2176] SELECTION MADE BY DRAGGING ACROSS FIRST DISPLAY

[2177] A method as in the parent innovation wherein said user'sselection of a given portion of said first display is performed bydragging a cursor across the selected portion of said first display.

[2178] DRAGGING A RECTANGLE AROUND PORTION OF SCREEN TO BE ZOOMED TO

[2179] A method as in the parent innovation wherein said user'sselection of a given portion of said first display is performed bydragging a rectangle around the selected portion of said first display.

[2180] DRAGGING A LINE ACROSS SCREEN WHICH IS TO BE IN THE UPPER ONETHIRD OF ZOOMED VIEW

[2181] A method as in the parent innovation wherein:

[2182] said user's selection of a given portion of said first display isperformed by dragging a horizontal line across the selected portion ofsaid first display; and

[2183] the portion of the web page shown in the second displayautomatically places the portion of the web page corresponding to saidline in the upper one third of said second display

[2184] FIRST DISPLAY CAN SCROLL DURING DRAG TO ALLOW SELECTION TOINCLUDE PORTION OF WEB PAGE WAS NOT ON SCREEN AT START OF DRAG

[2185] A method as in the parent innovation wherein said first displaycan scroll during, and in response to, said dragging so as to enablesaid selected portion to include portions of said web page which was notshown in said first display at the start of said drag.

[2186] SELECTION MADE BY INDICATING AN OBJECT WITHIN SAID FIRST DISPLAY,AND METHOD AUTOMATICALLY MAKES THE SELECTED PORTION OF WEB PAGECORRESPONDING TO THE WIDTH AND/OR HEIGHT OF THE INDICATED OBJECT

[2187] A method as in the parent innovation wherein:

[2188] said user's selection of a given portion of said first display isperformed by indicating an object shown in the first display; and

[2189] said method automatically defines the selection portion of saidfirst display as being the portion of that display which corresponds tothe width and/or height of said indicated object.

[2190] SELECTION IS BY CLICKING ON OBJECT

[2191] A method as in the parent innovation wherein said indication ofan object is performed by clicking on said object.

[2192] OBJECT IS IMAGE, CONTROL, CELL WITHIN TABLE, FRAME, ORAUTOMATICALLY IDENTIFIABLE GROUPING OF TEXT

[2193] A method as in the parent innovation wherein said object iseither an image, a control, a cell within a web page table, a frame of aweb page, or an automatically identifiable grouping of text.

[2194] CAN DO QUICKZOOM WITH LOWER RESOLUTION IMAGE UNTIL GET HIGHERRESOLUTION ONE

[2195] CAN SELECT DOWNLOAD OF NON-SCALED IMAGES INDIVIDUALLY

[2196] CAN SCALE IMAGES UP OR DOWN, AND IF THEY ARE LARGER THAN FITS ONSCREEN AT A GIVEN RESOLUTION CAN SCROLL A PEEP-HOLE THROUGH THEM

[2197] ZOOM TO FIT THE WIDTH OF A TEXT CONTAINER

[2198] ZOOM WEB CONTENT BY USING DIFFERENT RES. FONT BITMAPS BUT KEEPINGSAME LINE BREAKS

[2199] A method of browsing web comprising:

[2200]  downloading a web page from across a computer network;

[2201]  laying out the position of the web page's visible text and/orimages in a layout space having horizontal and vertical layout pixelresolutions, including:

[2202] treating each image as having a layout size in said layout space;

[2203] treating each character in the visible text as having ahorizontal and vertical layout pixel size in said layout space;

[2204] flowing the visible text across line boundaries by breakingportions of text which cross a line boundary into separate single linecharacter strings, each of which fits on a line in said layout space;and

[2205] producing a first display of at least a portion of said web pageat a first scale having a pixel resolution that corresponds to thehorizontal and vertical layout resolutions multiplied by firsthorizontal and vertical scale factors, respectively, including:

[2206]  displaying both said images and single line character strings atdisplay screen locations corresponding to the locations at which theyhave been laid out in said layout space, adjusted in the horizontal andvertical direction as a function of both said first horizontal andvertical scaling factors, respectively;

[2207]  representing each of said images in said first display by apixel pattern that has been scaled from the image's layout size as afunction of said first horizontal and vertical scaling factors;

[2208]  representing each of individual characters in each single linetext strings in said first display by a pixel pattern which has a sizethat relates to the character's horizontal and vertical layout pixelsize as a function of said first horizontal and vertical scalingfactors, respectively;

[2209]  responding to a user's selection to display a portion of saidweb page at a second scale by producing a second display of at least aportion of said web page at a pixel resolution which corresponds to thehorizontal and vertical layout resolutions multiplied by secondhorizontal and vertical scale factors, respectively, including:

[2210] representing each of said images in said second display by apixel pattern that has been scaled down from the image's layout size asa function of said second horizontal and vertical scaling factors;

[2211] representing each of said individual characters in the singleline text strings by a pixel pattern which has a size that relates tothe character's horizontal and vertical layout pixel size as a functionof said second horizontal and vertical scaling factors, respectively;

[2212] wherein:

[2213]  the ratio of the horizontal size of the pixel patterns of atleast some individual characters in said first and second displaysdiffers from the ratio of said first and second horizontal scalingfactors;

[2214]  this difference in ratio causes the relative location ofindividual characters in different single line character strings to varybetween said first and second displays; but

[2215]  the fact that the same single line character strings aredisplayed in both the first and second displays prevents this differencein ratio from changing which portions of text appear on a given line inthe different displays.

[2216] BROWSER REQUESTS WEB PAGE THROUGH PROXY; PROXY REQUESTS PAGE FROMREMOTE SITE; WHEN PROXY RECEIVES PAGE IT LAYS IT OUT AND DOWNLOADS ITSIMAGES AND CHARACTER STRING ELEMENTS, AND THE LOCATIONS AT WHICH THOSEELEMENTS ARE TO BE DISPLAYED; THE BROWSER DISPLAYS THE ELEMENTS AT AFIRST SCALE, WHEN THE USER SELECTS A SECOND SCALE, THE BROWSERREDISPLAYS THE ELEMENTS AT A SECOND SCALE AND A LOCATIONS THE DISTANCEBETWEEN ARE SIMILARLY SCALED WITHOUT OBTAINING NEW DISPLAY LOCATIONSFROM THE BROWSER

[2217] BROWSER SCALES BITMAP OF IMAGE AT A FIRST SCALE AND USES IT INSECOND DISPLAY AT SECOND SCALE

[2218] BROWSER CAN REQUEST LARGER VERSION OF IMAGE FOR DISPLAY AT SECONDSCALE

[2219] IF BROWSERS ALREADY HAS STORED ON IT FONTS OF APPROPRIATE SIZEFOR SECOND SCALE IT DISPLAYS TEXT IN SECOND SCALING WITH THOSE FONTSWITHOUT THE NEED TO OBTAIN THOSE FONTS FROM PROXY

[2220] PROXY SENDS DOWN IMAGE AT DIFFERENT SCALE FOR SECOND DISPLAY

[2221] SUB-PIXEL OPTIMIZED FONTS USED IN DISPLAY OF AT LEAST ONE OF TWOSCALES

[2222] AS FONT SIZE CHANGES METRICS OF CHARACTERS OF FONT DO NOT ALWAYSCHANGE IN SAME PROPORTION

[2223] CLIENT SMART ENOUGH ADD OR SUBTRACT SPACE BETWEEN BITMAPS-SO THISCAN BE DONE WITHOUT COMMUNICATION WITH PROXY

[2224] COULD BE DONE WITH OUTLINE FONTS

[2225] WITH FONT SERVING

[2226] ZOOM-TO-FIT

[2227] A method as in the parent innovation wherein:

[2228] said user's selection to display a portion of said web page at asecond scale is performed by the user's selection of a given portion ofsaid first display;

[2229] said responding to said users selection includes producing asecond display of a portion of said web page including said selectedportion; and

[2230] said second scale is automatically selected to cause the size ofthe portion of said web page shown in said second display to correspondto the size of said selected portion.

[2231] QUICKZOOM—I.E., BROWSER INTERFACE CONTROLS FOR ALLOWING QUICKZOOMOF ALL OR A PORTION OF DISPLAYED WEB PAGE

[2232] QUICKZOOM WHICH DOES BLOW UP OF LOWER RESOLUTION IMAGE DATA FORZOOM BUT WHICH USES HIGHER RESOLUTION FONT BITMAPS TO REPRESENT ZOOMEDTEXT IF IT HAS THEM AVAILABLE

[2233] IF NOT, CAN SUBSTITUTE THEM INTO QUICKZOOM AS SOON AS GET THEM

[2234] AS SOON AS GET HIGHER RESOLUTION VERSION OF A ZOOM IMAGE, THEBROWSER REPLACES QUICKZOOMED VERSION WITH THE HIGHER RESOLUTION IMAGE

[2235] QUICKZOOM UPSCALES SUB-PIXEL OPTIMIZED IMAGE COLOR BITMAP

[2236] THERE COULD BE A 2× (OR OTHER SCALE) ZOOM BUTTON IN THE BROSWERUSER INTERFACE WHICH WOULD ALLOW A USER TO PERFORM A 2× ZOOM AROUND THELAST PLACED CLICKED

[2237] AUTOMATICALLY DOWNLOADING MULTIPLE RESOLUTIONS, SUCH AS ASTANDARD 0.5× AND 1× SO CAN QUICKZOOM BETWEEN THE TWO AND HAVE HIGHERRESOLUTION IMAGE READY FOR ZOOM SHORTLY AFTER DOWNLOAD

[2238] USER COULD SPECIFY WHAT TYPE OF UNSHOWN BUT POSSIBLY OF INTERESTELEMENTS HE OR SHE WANTS SHOWN SUCH AS

[2239] ELEMENTS FOR USE IN ZOOM

[2240] ELEMENTS FOR USE IN SCROLLING AT CURRENT RESOLUTION

[2241] ZOOMCLICK—SCREEN DOES A QUICKZOOM ON PORTION OF SCREEN USER MOUSEDOWNS ON, BUT CLICK IS NOT RECORDED UNTIL USER DOES A MOUSE UP. THISLETS USER MOVE MOUSE TO DESIRED POSITION IN A LARGER SCALE VIEW IN WHICHIT IS EASIER TO LOCATION DESIRED SCREEN OBJECTS BEFORE MAKING ASELECTION

[2242] USER CAN TURN ON AND OFF THIS FEATURE

[2243] ZOOM TEXT ENTRY—I.E., WHEN USER CLICK OR OTHERWISE SELECTS A TEXTENTRY FIELD SHOWN ON A SCREEN AT A FIRST SIZE, A ZOOMED TEXT ENTRY FIELDIS SHOWN AT A LARGER SIZE

[2244] IN ONE EMBODIMENT, A KEYBOARD AND A SEPARATE TEXT ENTRY FIELD POPUP ON THE SCREEN WHEN A USER CLICKS ON ANY TEXT ENTRY FIELD SHOWN IN AWEB PAGE. ONCE THE USER PRESSES AN ENTER BUTTON ASSOCIATED WITH THELARGE POP-UP TEXT ENTRY FIELD, THESE POP-UP ELEMENTS DISAPPEAR FROM THESCREEN

[2245] IN ANOTHER EMBODIMENT, THE IMAGE COULD ZOOM IN ON THE ACTUAL TEXTENTRY FIELD THE USER HAS CLICKED ON, IN A MANNER SIMILAR TO THE ZOOMCLICK DESCRIBED ABOVE

[2246] WHEN THE USER SELECTS A TEXT ENTRY FIELD A KEYBOARD POPS UP ONTHE SCREEN

[2247] WHEN THE USER SELECTS A TEXT ENTRY FIELD A HANDWRITTINGRECOGNITION FIELD POPS UP ON THE SCREEN

[2248] WHEN THE USER SELECTS A TEXT ENTRY FIELD A VOICE RECOGNITIONENTRY FIELD POPS UP ON THE SCREEN

[2249] MAGNIFYING GLASS—I.E., A WEB BROWSER IN WHICH A PORTION OFSMALLER SCALE SCREEN VIEW OF WEB CONTENT IS ZOOMED, WITH PORTION OFSMALLER SCALE SCREEN SHOWN IN ZOOMED SCALE MOVING AROUND AS USER MOVESOR CLICK POINTING DEVICE

[2250] USER CAN TOGGLE BETWEEN MAGNIFIED AND NORMAL SMALL SCALE SCREEN

[2251] IN ZOOM VIEW TEXT IS SHOWN IN HIGHER RES FONT, WITHOUT REFLOW

[2252] USES QUICKZOOMED VERSIONS OF IMAGES FROM SMALL SCALE VIEW UNTILOR UNLESS HAVE HIGHER RES VERSION OF THEM

[2253] COULD HAVE VARIABLE ZOOM SCALE

[2254] RAPID ZOOM CONTROLS—I.E., BROWSER WITH USER INTERFACE HAVINGBUTTONS WHICH ALLOW USER TO RAPIDLY CHANGE BETWEEN DIFFERENT SCALE VIEWSOF WEB PAGE

[2255] BROWSER USER INTERFACE HAS A ZOOM BUTTON OR COMMAND WHICH IFSELECTED BEFORE OR AFTER USER SELECTS A PORTION OF SCREEN-ZOOMS TO THATPORTION

[2256] BROWSER USER INTERFACE RECORDS HISTORY OF ZOOM SIZES, AND HAS ABACK AND FORWARD CONTROL, SIMILAR TO THAT USED FOR HISTORY OF WEB PAGES,TO ALLOW USER TO GO BACK AND FORTH BETWEEN DIFFERENT VIEWS OF A GIVENPAGE

[2257] VIEW HISTORY NOT ONLY RECORDS SIZE BUT ALSO LOCATION OF VIEWS, SOUSER CAN NAVIGATE BACK AND FORTH BETWEEN VIEWS OF A GIVEN WEB PAGE ATDIFFERENT LOCATIONS AND/OR SIZES

[2258] WITH SYSTEM CACHING INFORMATION HELPFUL FOR DISPLAY AT DIFFERENTSIZES

[2259] USING DIFFERENT FONTS FOR DIFFERENT VIEWS

[2260] WITH QUICKZOOM SCALING OF PRIOR VIEW IF DON'T HAVE NEW VIEW INLOCAL MEMORY

[2261] WITH REMOTE PROCESS GENERATING ALTERNATE ZOOMED VIEWS

[2262] WITH SUB-PIXEL OPTIMIZATION

[2263] ZOOM OUT & FULL PAGE VIEW—I.E., ZOOM OUT TO SEE WHOLE PAGE (OR ATLEAST WHAT WOULD BE MULTIPLE NORMAL SCREENS)

[2264] THIS COULD USE GREEKING FOR ALL TEXT BELOW A CERTAIN SIZE, ANDSHADING FOR ALL TEXT OF EVEN A SMALLER SIZE

[2265] CENTERCLICK—I.E., A WEB BROWSER WHICH ALLOWS A USER TO ZOOM TO AIN PEEPHOLE VIEW (A VIEW THAT SHOWS ONLY A PORTION OF THE WIDTH AT WHICHA PAGE HAS BEEN LAID OUT AT) AND WHICH ALLOWS THE USER TO RECENTER THEPEEPHOLE VIEW WHERE THE USER CLICKS

[2266] SUB-PIXEL OPTIMIZED WEB BROWSING WITH VARIABLE ZOOM

[2267] SYSTEMS INTERFACE ALLOWS USER TO SELECTED AMOUNG THREE OR MOREDIFFERENT SCALINGS

[2268] USER VARIABLE VIRTUAL WEB RESOLUTIONS WITH FONTS OPTIMIZED FORDISPLAY'S PIXELATION AT EACH RESOLUTION

[2269] USER VARIABLE VIRUAL WEB RESOLUTION WITH SUB-PIXEL OPTIMIZATION

[2270] -G-Group Innovations

[2271] METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM GENERATETHE LAYOUT OF A WEB PAGE TO BE DISPLAYED ON THE SCREEN OF SECONDCOMPUTER SYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO SAID SECONDCOMPUTER SYSTEM, IN WHICH ONE OR MORE ELEMENTS IN WEB PAGE DISPLAY ARESCALED DOWN BY THE PROCESS ON THE FIRST COMPUTER BEFORE BEING DOWNLOADEDTO AND DISPLAYED BY THE SECOND COMPUTER AND IN WHICH A FONT FAMILY ISUSED BY THE FIRST COMPUTER IN THE LAYOUT AND IN THE SECOND COMPUTER FORTHE DISPLAY WHICH HAS BEEN SELECTED FOR READABILITY AT PIXEL SIZES OF 10PIXELS PER EM OR LESS

[2272] WIRELESS COMMUNICATION IS USED BETWEEN FIRST COMPUTER AND SECONDCOMPUTER

[2273] WEB PAGE SPECIFIES CERTAIN FONTS FOR CERTAIN TEXT, AND FIRSTCOMPUTER PERFORMS LAYOUT AND SECOND COMPUTER DISPLAYS THE CERTAIN TEXTWITH DIFFERENT FONTS WHICH HAVE BEEN OPTIMIZED FOR READABILITY AT PIXELSIZES OF 10 PIXELS PER EM OR LESS.

[2274] FONT FAMILY HAS BEEN OPTIMIZED FOR READABILITY AT PIXEL SIZES OF8 PIXELS PER EM OR LESS

[2275] FIRST COMPUTER MAKES FOREGROUND COLOR CHANGES TO TEXT ELEMENTSWHICH ARE DISPLAYED TO INCREASE THE READABILITY OF SUBPIXEL OPTIMAZEDFONTS

[2276] WITH THE SECOND COMPUTER SYSTEM HAVING A USER INTERFACE ALLOWINGTHE USER TO CHANGE THE SCALE FACTOR AT WHICH ELEMENTS GENERATED ON THEFIRST COMPUTER SYSTEM ARE DISPLAYED ON THE SECOND COMPUTER SYSTEM, ANDSAID SCALE FACTOR IS UPLOADED FROM THE SECOND COMPUTER TO THE FIRSTCOMPUTER WHICH USES IT BOTH IN DETERMINING HOW MUCH TO SCALE DOWNELEMENTS IN THE WEB PAGE, INCLUDING DETERMINING THE SIZE FOR THE FONTSTO BE USED IN THE DISPLAY OF THE WEB PAGE BY THE SECOND COMPUTER

[2277] SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT

[2278] NON-LINEAR COLOR BALANCING IS USED IN THE SUBPIXEL OPTIMIZATIONOF TEXT

[2279] SUBPIXEL OPTIMIZED ELEMENTS ARE IMAGES

[2280] SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT AND IMAGES AND A DIFFERENTALGORITHM IS USED TO SUBPIXEL OPTIMIZE FONTS AND IMAGES

[2281] METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM REPEATEDLYGENERATE INFORMATION TO BE DISPLAYED ON THE SCREEN OF SECOND COMPUTERSYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO SAID SECOND COMPUTERSYSTEM, IN WHICH INFORMATION GENERATED BY THE FIRST COMPUTER ISDOWNLOADED TO THE SECOND COMPUTER, THE USER INPUT IS UPLOADED FROM THESECOND COMPUTER TO THE FIRST COMPUTER, AND ONE OR MORE ELEMENTS IN THEDISPLAY ARE SUBPIXEL OPTIMIZED FOR DISPLAY THE SCREEN OF THE SECONDCOMPUTER

[2282] SUBPIXEL OPTIMIZATION IS DONE BY FIRST COMPUTER

[2283] SUBPIXEL OPTIMIZATION IS DONE BY SECOND COMPUTER

[2284] DOWNLOAD IS BY WIRELESS TRANSMISSION

[2285] SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT

[2286] NON-LINEAR COLOR BALANCING IS USED IN THE SUBPIXEL OPTIMIZATIONOF TEXT

[2287] SUBPIXEL OPTIMIZED ELEMENTS ARE IMAGES

[2288] SUBPIXEL OPTIMIZED ELEMENTS ARE TEXT AND IMAGES AND A DIFFERENTALGORITHM IS USED TO SUBPIXEL OPTIMIZE FONTS AND IMAGES

[2289] WITH COLOR CHANGES BEING MADE TO THE ELEMENTS WHICH ARE DISPLAYEDTO INCREASE THE READABILITY OF SUBPIXEL OPTIMAZED FONTS

[2290] WITH THE SECOND COMPUTER SYSTEM HAVING A USER INTERFACE ALLOWINGTHE USER TO CHANGE THE SCALE AT WHICH ELEMENTS GENERATED ON THE FIRSTCOMPUTER SYSTEM ARE DISPLAYED ON THE SECOND COMPUTER SYSTEM

[2291] SCALING IS PERFORMED ON FIRST COMPUTER

[2292] SCALING IS PERFORMED ON SECOND COMPUTER

[2293] THE PROCESS RUNNING ON THE FIRST COMPUTER SYSTEM IS ANAPPLICATION WHICH DO NOT HAVE PROGRAMMING FOR SUBPIXEL OPTIMIZATION

[2294] SUBPIXEL OPTIMIZATION IS PERFORMED BY ROUTINES ON FIRST COMPUTERWHICH RESPOND TO CALLS MADE BY THE APPLICATION TO DRAW A SCREEN ELEMENT

[2295] A PROCESS ON A FIRST COMPUTER RECEIVES DIGITAL CONTENT INCLUDINGTEXT, LAYS IT OUT FOR USE IN DOWNSCALED DISPLAY, DOWNLOADS DISPLAY LIST,PROCESS ON SECOND COMPUTER DISPLAYS INFORMATION IN DISPLAY LIST

[2296] TEXT STRINGS ARE DOWNLOADED BEFORE BITMAP IMAGES REFERRED TO INDISPLAY LIST AND THE SECOND COMPUTER STARTS TO DISPLAY TEXT STRINGSBEFORE RECEIPT OF IMAGES

[2297] DOWNLOAD IS BY WIRELESS TRANSMISSION

[2298] DOWNLOAD IS BY WIRELESS TRANSMISSION

[2299] DISPLAY LIST IS COMPRESSED WITH LOSSLESS COMPRESSION BEFOREDOWNLOADING

[2300] PROCESS ON FIRST COMPUTER SCALES DOWN THE DIGITAL CONTENT

[2301] SCALES DOWN IMAGES BITMAPS

[2302] SCALES DOWN FONT SIZES

[2303] PROCESS ON SECOND COMPUTER SCALES DOWN THE DIGITAL CONTENT

[2304] PROCESS ON FIRST COMPUTER LAYS OUT DIGITAL CONTENT AT ONE PIXELRESOLUTION, THE PROCESS ON THE SECOND COMPUTER DISPLAY THE CONTENT ATANOTHER RESOLUTION

[2305] TEXT AS DISPLAYED WITH SUBPIXEL OPTIMIZED BITMAP

[2306] IMAGES ARE DISPLAYED WITH SUBPIXEL OPTIMIZED IMAGES

[2307] PROCESS ON FIRST COMPUTER SCALES TEXT FONT SIZE AS A FUNCTION OFA DISPLAY SCALE FACTOR, CLIENT DISPLAYS TEXT AT SCALED FONT SIZES

[2308] PROCESS ON SECOND COMPUTER RESPONDS TO USER INPUT TO CHANGE AZOOM FACTOR, WHICH VARIES THE SIZE OF THE PORTION OF THE LAYOUT TO BEDISPLAYED, UPLOADS THE SELECTED ZOOM FACTOR TO PROCESS ON FIRSTCOMPUTER, WHICH THEN USES IT TO DETERMINE THE SCALE FACTOR USED TO SCALETEXT FONT SIZE

[2309]  A CHANGE IN ZOOM FACTOR CAUSES TEXT TO BE DISPLAYED AT DIFFERENTFONT SIZE, BUT THE TEXT IS NOT RE-LAID OUT

[2310]  CHANGES IN RELATIVE SPACING BETWEEN THE CHARACTERS OF A STRINGIS USED TO COMPENSATE FOR DIFFERENCES IN RELATIVE SIZE OF THE VARIOUSCHARACTERS OF A STRING WHEN DISPLAYED AT DIFFERENT FONT SIZES

[2311] PROCESS ON SECOND COMPUTER RESPONDS TO USER INPUT TO CHANGE THELAYOUT RESOLUTION, UPLOADS THE SELECTED SCALE FACTOR TO PROCESS ON FIRSTCOMPUTER, WHICH THEN USES IT TO DETERMINE THE SCALE FACTOR USED TO SCALETEXT FONT SIZE

[2312] FIRST COMPUTER DOWNLOADS MORE DISPLAY LIST LAYOUT INFORMATIONTHAN FITS ON DISPLAY OF SECOND COMPUTER AT ONE TIME

[2313] USER INTERFACE ON SECOND COMPUTER ALLOWS USER TO MOVE SCREENDISPLAY TO A NEW LOCATION WITHIN PREVIOUSLY DOWNLOADED LAYOUTINFORMATION, IN RESPONSE SECOND COMPUTER DISPLAYS ELEMENTS OF LAYOUTCORRESPONDING TO THE NEW LOCATIONP

[2314] USER INTERFACE INPUT ASSOCIATED WITH LOCATION ON SCREEN OF SECONDCOMPUTER ARE SCALED AND/OR TRANSLATED AND SENT BACK TO FIRST COMPUTERWHICH RESPONDS TO THEM AS IF THEY HAD TAKEN PLACE IN THE CORRESPONDINGLOCATION IN THE DISPLAY LIST.

[2315] METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM REPEATEDLYGENERATE INFORMATION TO BE DISPLAYED ON THE SCREEN OF SECOND COMPUTERSYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO SAID SECOND COMPUTERSYSTEM, IN WHICH INFORMATION GENERATED BY THE FIRST COMPUTER ISDOWNLOADED TO THE SECOND COMPUTER, THE USER INPUT IS UPLOADED FROM THESECOND COMPUTER TO THE FIRST COMPUTER, AND IN WHICH ONE OR MORE ELEMENTSDISPLAYED ON THE SECOND COMPUTER IN RESPONSE TO INFORMATION DOWNLOADEDFROM THE FIRST COMPUTER ARE GUI CONTROL OBJECTS, THE SECOND COMPUTER HASPROGRAMMING THAT RESPONDS TO USER INPUT ASSOCIATED WITH SUCH CONTROLOBJECT BY APPRORIATELY CHANGING THE CONTROL OBJECTS APPEARANCE IN THEDISPLAY AND BY STORING STATE INFORMATION INDICATING THE CHANGE MADE TOTHE CONTROL OBJECTS DISPLAY, THE FIRST COMPUTER INCLUDES PROGRAMMINGWHICH TRANSMITS A QUERY TO THE SECOND COMPUTER FOR THE STATE ASSOCIATEDWITH A SET OF ONE OR MORE OF THE DISPLAYED CONTROL OBJECTS, AND THESECOND COMPUTER RESPONDS TO SUCH A QUERY BY TRANSMITTING UP TO THE FIRSTCOMPUTER THE STATE ASSOCIATED WITH EACH OF THE QUERIED SET OF CONTROLOBJECTS

[2316] COMMUNICATION BETWEEN FIRST AND SECOND COMPUTER IS BY MEANS OFWIRELESS TRANSMISSION

[2317] METHOD OF HAVING A PROCESS ON A FIRST COMPUTER SYSTEM REPEATEDLYGENERATE INFORMATION TO BE DISPLAYED ON THE SCREEN OF SECOND COMPUTERSYSTEM IN RESPONSE TO INPUT PROVIDED BY A USER INTO SAID SECOND COMPUTERSYSTEM, IN WHICH THE USER INTERFACE ON THE SECOND COMPUTER ALLOWS THEUSER TO SELECT TO SCROLL THE POSITION OF THE SCREEN IMAGE RELATIVE TOTHE LAYOUT OF THE INFORMATION TO BE DISPLAYED, AND WHEN THE DISPLAY ATTHE NEW LAYOUT POSITION WOULD INCLUDE THE DISPLAY OF INFORMATIONDOWNLOADED FOR USE IN THE DISPLAY AT THE PREVIOUS LAYOUT POSITION, THESECOND COMPUTER REUSES AT LEAST A PORTION OF SUCH PREVIOUSLY DOWNLOADEDIN FORMATION, AND THE FIRST COMPUTER SELECTS WHICH INFORMATION TODOWNLOAD TO THE SECOND COMPUTER FOR USE IN THE DISPLAY AT THE NEW LAYOUTPOSITION SO AS TO NOT TO RE-DOWNLOAD SUCH PREVIOUSLY DOWNLOADEDINFORMATION WHICH IS TO BE SO REUSED.

[2318] INFORMATION IS RE-USED BY TRANSLATING A PORTION OF THE BITMAPGENERATED FOR THE DISPLAY AT THE OLD LAYOUT POSITION FOR USE IN THEDISPLAY AT THE NEW LAYOUT POSITION

[2319] DOWNLOAD IS PERFORMED BY WIRELESS

[2320] BROWSER PROCESS ON FIRST COMPUTER RECIEVES WEB PAGE, IT LAYS OUTWEB PAGE AND CREATES CORRESPONDING DISPLAY LIST INCLUDING LIST OFSTRINGS AND IMAGES AND THEIR LOCATIONS, DOWNLOADS DISPLAY LIST BYWIRELESS COMUNICATION TO A THIN CLIENT BROWSER, WHICH BITMAPS OF IMAGESBEING SENT DOWN AFTER STRINGS AND THEIR LOCATIONS, THIN CLIENT BROWSERSTARTS TO DISPLAY STRINGS AT LOCTIONS INDICATED IN DISPLAY LIST BEFOREIMAGES ARE ALL RECEIVED, IMAGES ARE DISPLAYED AT LOCATIONS INDICATED INDISPLAY LIST WHEN RECEIVED

[2321] WIRELESS IS LOCAL AREA NET WIRELESS

[2322] WIRELESS IS CELLULAR WIRELESS

[2323] FIRST COMPUTER SCALES DOWN AND LAYS OUT WEB PAGE, COMPRESS LAYOUTINFORMATION, DOWNLOADS IT VIA WIRELESS CONNECTION TO A SECOND COMPUTER,SECOND COMPUTER DECOMPRESSES LAYOUT INFORMATION, AND DISPLAYS IT ON ITSSCREEN, SECOND COMPUTER RECEIVES USER INPUTS RELATIVE TO LOCATION ON ITSDISPLAY OF WEB PAGE, SENDS USER INPUTS TO FIRST COMPUTER, USER INPUTSARE SCALED TO CORRESPONDING LOCATION IN LAYOUT OF WEB PAGE STORED ONFIRST COMPUTER, FIRST COMPUTER DETECTS IF SCALED USER INPUT CORRESPONDSTO CLICKING ON A LINK IN WEB PAGE, IF SO IT RESPONDS BY ACCESSING LINKEDWEB PAGE

[2324] COMPRESSION INCLUDES LOSSLESS COMPRESSION OF TEXT

[2325] COMPRESSION INCLUDES LOSSLESS COMPRESSION OF IMAGES

[2326] DOWNLOADED AND DISPLAYED IMAGE ARE SUBPIXEL OPTIMIZED IMAGEBITMAPS

[2327] TEXTS IS DISPLAYED BY SECOND COMPUTER BY SUBPIXEL OPTIMIZED FONTBITMAPS

[2328] DOWNLOAD AND DISPLAY FIRST GREEKED REP. OF WEB TEXT FOLLOWED BYREP. OF ITS CHARACTERS

[2329] A method of web browsing comprising:

[2330] downloading a greeked representation of a web page in which eachof one or more a portion of text is represented as a string lengthstarting at each of one or more locations in a layout of said page;

[2331] displaying at least a portion of said web page in which said oneor more string lengths are represented at their associated layoutpositions by greeking;

[2332] subsequently downloading the string characters associated withone or more of said portions of text; and

[2333] subsequently displaying the character string associated with oneor more of said portion of texts.

[2334] ALLOW USER TO SELECT A PORTION OF THE GREEKED TEXT ANDDOWNLOADING AND DISPLAYING SELECTED PORTION

[2335] A method as in the parent innovation:

[2336] further including allowing a user to select one or more of saidportions of text represented by said greeking; and

[2337] wherein said subsequent downloading and subsequent displayingincludes downloading and displaying the string of characters associatedwith one or more of said selected portions of text.

[2338] DISPLAY PORTION OF WEB PAGE CORRESPONDING TO SELECTED PORTIONS OFGREEKED TEXT AT A LARGER SCALE THAN SAID GREEKED TEXT

[2339] A method as in the parent innovation wherein said subsequentdisplaying includes displaying a part of said web page including thecharacter strings of said selected portions of text at a larger scalethan the same portion of the web page shown with said greekedrepresentations was shown.

[2340] DISPLAY SELECTED PORTION OF TEXT WITH LARGER CHARACTERS AND TEXTREFLOWN ACROSS LINE BOUNDARIES

[2341] A method as in the parent innovation wherein said subsequentdisplaying includes displaying one or more characters strings of saidselected portions of text using character shapes having a larger sizethan is represented by said greeked representation and after said texthas been reflown across line boundaries to determine new ling breaksoccasioned by said larger character shape sizes.

[2342] DOWNLOADED GREEKED REP. REPRESENTS A MULTI-LINE BODY OF TEXT AS ASERIES OF SINGLE LINE STRING LENGTHS, EACH REPRESENTING THE LENGTH OFONE LINE OF TEXT AND EACH WITH AN ASSOCIATED POSITION

[2343] A method as in the parent innovation wherein said greekedrepresentation represents a body of multi-lined text in said web page asa series of said string lengths, each representing the length of oneline of text and each having an associated layout position in said webpage.

[2344] DOWNLOADING A SEPARATE CHARACTER STRING IN ASSOCIATION WITHINDIVIDUAL SINGLE LINE STRING LENGTHS, AND SUCCESSIVELY REPLACING INSAID DISPLAY THE GREEKING ASSOCIATED WITH INDIVIDUAL SINGLE LINE STRINGWITH THE SHAPES OF THE CHARACTER OF THEIR ASSOCIATED CHARACTERS STRINGAS THOSE INDIVIDUAL CHARACTERS STRINGS ARE DOWNLOADED

[2345] A method as in the parent innovation wherein:

[2346] said subsequent downloading of character string includesdownloading a separate character string in association with individualsingle line string lengths; and

[2347] said subsequent displaying of character strings includessuccessively replacing in said display the greeking associated withindividual single line string with the shapes of the character of theirassociated characters string as those individual characters strings aredownloaded.

[2348] DOWNLOAD FROM TOP OF PAGE FIRST

[2349] ACROSS SIDE BY SIDE TEXT BLOCKS

[2350] ORDER IN WHICH CHARACTERS OF DIFFERENT PORTIONS OF TEXT AREDOWNLOADED AND DISPLAYED VARIES AS A FUNCTION OF PROPERTIES ASSOCIATEDWITH TEXT PORTIONS BY WEB PAGE

[2351] A method as in the parent innovation wherein the order in whichdifferent portions of text have their individual characters downloadedand displayed varies as a function of the different properties whichsaid different text portions have associated with them by said web page.

[2352] DIFFERENT PROPERTY INCLUDES DIFFERENT FONT SIZE

[2353] A method as in the parent innovation wherein font size is one ofsaid properties used to control the order in which different portions ofsaid text have their characters downloaded and displayed.

[2354] GREEKING INCLUDES INDICATION OF HEIGHT OF CHARACTERS IN STRING ASWELL AS LENGTH OF STRING

[2355] A method as in the parent innovation wherein:

[2356] different of said string lengths have height values associatedwith them, which indicate the height of the characters in the textportion that the string length represents; and

[2357] said displaying of said web page in which said string lengths arerepresented by greeking includes causing the height of the greeking usedto represent a given string length to vary as a function of the stringlength's corresponding height value.

[2358] IMAGES CAN BE SHOWN IN ABREVIATED FORM FIRST

[2359] SHOW OUTLINE OF PICTURE RECTANGE

[2360] LOW RES IMAGE OR CHARACTURE-LOW RES FIRST

[2361] USER CAN SPECIFY DOWNLOAD ORDER

[2362] DOWNLOAD FROM PROXY

[2363] USER INTERACTION WITH TO INDICATE WHICH TO SEE

[2364] LAYOUT PAGE, THEN DOWNLOAD REP. OF TEXT ELEMENTS IN AN ORDERDETERMINED AS OF FUNCTION OF THEIR POSITION IN THE LAYOUT

[2365] A method of downloading and displaying a web page which containsdifferent portions of text having different properties associated withthem by said web page, said method comprising:

[2366] laying out the web page before downloading it to a browsercomputer;

[2367] downloading representations of individual portions of text withan indication of the layout location of each such portion;

[2368] displaying representation of said downloaded individual portionsof text as a function of the order in which they are downloaded;

[2369] wherein the order in which different portions of text aredownloaded and displayed is controlled as a function of the location towhich said portions have been assigned within said layout.

[2370] ORDERED AS A FUNCTION OF CLOSENESS TO TOP OF PAGE

[2371] A method as in the parent innovation wherein the order in whichdifferent portions of text are download and displayed is controlled as afunction of the relative closeness of said text portions to the top ofsaid layout, with text portions which are closer to the top of saidlayout being downloaded before text portions which are closer to thebottom of said layout.

[2372] DOWNLOADED REPRESENTATIONS OF TEXT PORTIONS INCLUDE STRINGLENGTHS AND THEY ARE REPRESENTED IN DISPLAY BY GREEKING

[2373] A method as in the parent innovation wherein:

[2374] said downloaded representations of individual text portionsinclude for each downloaded text portion a string length and saidindication of layout position; and

[2375] said displaying a representation of the downloaded text portionsincludes representing said downloaded string lengths at their associatedlayout positions by greeking.

[2376] DOWNLOADED REPRESENTATIONS OF TEXT PORTIONS INCLUDE CHARACTERSTRINGS AND THEY ARE REPRESENTED IN DISPLAY WITH THEIR CHARACTER'SSHAPES SHOWN

[2377] A method as in the parent innovation wherein:

[2378] said downloaded representations of individual text portionsincludes for each downloaded text portion a string of one or morecharacters corresponding to the text of said text portion and saidindication of layout position; and

[2379] said displaying a representation of the downloaded text portionsincludes representing said downloaded character strings at theirassociated layout positions by the shapes of their respectivecharacters.

[2380] BROWSER ALLOWS USER TO SELECT PORTION OF WEB PAGE FORPREFERENTIAL DISPLAY DURING SAID ORDERED DOWNLOAD AND DISPLAY, BROWSERRESPONDS TO SELECTION OF A PORTION OF WEB PAGE BY COMMUNICATINGPREFERENTIAL SELECTION REMOTE COMPUTER, WHICH ALTERING THE DOWNLOAD OFPAGE

[2381] A method as in the parent innovation wherein:

[2382] said downloaded information is received and displayed by abrowser computer;

[2383] said layout is performed, and said downloaded information isdownloaded from one or more remote computers;

[2384] said browser computer allows a user to select a portion of saidweb page for preferential display while said page is being displayed;

[2385] said browser computer responds to a user's selection of a portionof said web page for preferential display by communicating saidselection to one of said remote computers;

[2386] said remote computer responds to said communication of saidselection of a portion of said web page by altering the download of saidweb page to support said selected preferential display.

[2387] PREFERENTIAL SELECTION INDICATES PORTION OF PAGE TO BE DOWNLOADEDFIRST

[2388] A method as in the parent innovation wherein:

[2389] said selection indicates that said selected portion of said webpage is to be downloaded and displayed before other portions of said webpage; and

[2390] said remote computer alters the download of said web page tosupport said selected preferential display by causing the selectedportion of the web page to be downloaded before other, non-selectedportions, of the web-page.

[2391] PREFERENTIAL SELECTION INDICATES PORTION OF PAGE TO BE DISPLAYEDAT A LARGER SIZE

[2392] A method as in the parent innovation wherein:

[2393] said selection indicates that said selected portion of said webpage is to be displayed at a larger size than that at which the page wasbeing displayed before said selection;

[2394] said remote computer alters the download of said web page tosupport said selected preferential display by causing the selectedportion of the web page to be downloaded before other, non-selectedportions, of the web-page; and

[2395] said browser displays elements of said selected portion of saidweb page at said larger size.

[2396] PREFERENTIAL SELECTION CAN INCLUDE AREA OF THE WEB PAGE'S LAYOUTWHICH HAVE NOT YET BEEN DISPLAYED ON THE BROWSER AT THE TIME THESELECTION IS MADE.

[2397] A method as in the parent innovation wherein:

[2398] said browser computer has a screen on which said display is made;

[2399] said selection can include portions of said screen whichcorrespond to portions of the web page which have not yet been displayedat the time of the selection;

[2400] said communication to said remote computer indicates that theselection includes the portion of the web page corresponding to theselected portion of said screen.

[2401] DOWNLOAD IMAGES LOCATION WITH TEXT DESCRIPTIONS AND USER CANSELECT WHICH TO HAVE DOWNLOADED FIRST

[2402] DOWNLOAD MAJOR DIVISIONS OF PAGE, LET USER SELECT WHICH TO HAVEDOWNLOADED FIRST

[2403] USE CAN SELECT ZOOM

[2404] INDICATING LAYERS, TABLE ELEMENTS, SUCH AS BY OUTLINES AND LETTERUSERS

[2405] PAGE IS LAID OUT BEFORE BEING DOWNLOADED, ORDER IN WHICHDIFFERENT PORTIONS OF TEXT ARE DOWNLOADED AND DISPLAYED VARIES AS AFUNCTION OF PROPERTIES ASSOCIATED WITH TEXT PORTIONS BY WEB PAGE

[2406] A method of downloading and displaying a web page which containsdifferent portions of text having different properties associated withthem by said web page, said method comprising:

[2407] laying out the web page before downloading it to a browsercomputer;

[2408] downloading individual portions of the web page's text, includingone or more characters, with an indication of the layout location ofeach such portion;

[2409] displaying said individual portions of text as a function of theorder in which they are downloaded;

[2410] wherein the order in which different portions of text aredownloaded and displayed is controlled as a function of the differentproperties which said different text portions have associated with themby said web page.

[2411] DIFFERENT PROPERTY INCLUDES DIFFERENT FONT SIZE

[2412] A method as in the parent innovation wherein font size is one ofsaid properties used to control the order in which different portions ofsaid text have their characters downloaded and displayed.

[2413] DOWN'T HAVE TO SEND IMAGES BECAUSE KNOW POSITION OF TEXT

[2414] COULD SEND SMALL ONES FIRST, LARGE ONES LAST

[2415] COULD SEND BANNER ADDS LAST

[2416] H-Group Innovations

[2417] APPLICATION CALLS OPERATING SYSTEM TO DISPLAY IMAGE, OPERATINGSYSTEM CALLS CAUSE IMAGES RECEIVED FROM APPLICATION TO BE SCALED-DOWN BYA SCALE FACTOR, SUBPIXEL OPTIMIZED, AND DISPLAYED

[2418] AN OPERATING SYSTEM FUNCTION SCALES DOWN AND SUBPIXEL OPTIMIZESIMAGE

[2419] HOOKS INTERCEPT OPERATING SYSTEM CALLS AND FUNCTION EVOKED BYHOOK IN RESONSE TO CALL SCALES DOWN AND SUBPIXEL OPTIMIZES IMAGE INSTEADOF THE CORRESPONDING OPERATING SYSTEM FUNCTION

[2420] IMAGES INCLUDE BITMAPS FROM THE APPLICATION'S GUI

[2421] APPLICATION IS A BROWSERS

[2422] APPLICATION IS NOT A BROWSER

[2423] CALLING A BITMAP DRAW ROUTINE TO DRAWS A BITMAP AND CALLING ASEPARATE STRING DRAW ROUTINE TO DRAW A STRING WITH A PARTICULAR FONT,WHERE THE BITMAP WITH WHICH THE BITMAP DRAW ROUTINE IS CALLED IS ASUBPIXEL OPTIMIZED BITMAP AND FONT WITH WHICH THE STRING DRAW ROUTINE ISCALLED IS A SUBPIXEL OPTIMIZED ROUTINE.

[2424] THESE CALLS ARE MADE BY AN APPLICATION PROGRAM OTHER THAN THEOPERATING SYSTEM

[2425] THESE CALLS ARE MADE BY A BROWSER PROGRAM

[2426] THESE CALLS ARE MADE BY A THIN CLIENT PROGRAM

[2427] THE SUBPIXEL OTIMIZED IMAGE IS A SCALED SUBPIXEL OPTIMIZED IMAGECREATED BY A SECOND COMPUTER, DIFFERENT FROM THAT ON WHICH THE THINCLIENT IS LOCATED, AND THAT SCALED, SUBPIXEL OPTIMIZED IMAGE HAS BEENDOWNLOADED FROM THE SECOND COMPUTER TO THE BROWSERS COMPUTER

[2428] IMAGES INCLUDE BITMAPS FROM THE APPLICATION'S GUI

[2429] APPLICATION IS A BROWSERS

[2430] APPLICATION IS NOT A BROWSER

[2431] APPLICATION CALLS OPERATING SYSTEM TO GET FONT MEASURMENTS FOR ACERTAIN STRING IN A CERTAIN FONT, RESPECTIVE OPERANTING SYSTEM CALLSCAUSE FONT METRICS FOR A SUBSTITUTE FONT TO BE GIVEN TO APPLICATION,USES FONT MEASUREMENTS TO LAYOUT TEXT, SUBSTITUTE FONT USED TO DISPLAYLAID OUT TEXT

[2432] APPLICATION CALLS OPERATING SYSTEM TO DISPLAY IMAGE, OPERATINGSYSTEM CALLS CAUSE IMAGES RECEIVED FROM APPLICATION TO BE SCALED-DOWN BYA SCALE FACTOR, AND DISPLAYED

[2433] OPERATING SYSTEM CALL IS INTERCEPTED TO ALLOW SCALED SCREENGENERATOR FUNCTION TO WORK

[2434] PROCESS OF SCALING DOWN AN IMAGE ALSO SUBPIXEL OPTIMIZES IT

[2435] APPLICATION AND OPERATING SYSTEM ARE ON A FIRST COMPUTER,APPLICATION LAYS OUT ONE OR MORE IMAGES AND LAYS OUT THE TEXT AS ONE ORMORE SINGLE LINE STRINGS AND ASSIGNS A RELATIVE LOCATION WITHIN THELAYOUT TO EACH STRING AND EACH IMAGE, THE STRINGS, IMAGES, AND THEIRLOCATIONS ARE DOWNLOADED TO A SECOND COMPUTER, THE SECOND COMPUTERDISPLAYS THE SCALED DOWN IMAGES AND DISPLAYS TEXT USING SUBSTITUTED FONTALL AT POSITIONS ON THE SECOND COMPUTER'S SCREEN CORRESONDING THERESPECTIVE DOWNLOADED LOCATIONS

[2436] LAYOUT IS PERFORMED BY THE APPLICATION AT A FIRST RESOLUTION, ALLOR A PORTION OF DISPLAY OF LAID OUT ELEMENTS ON THE CLIENTCOMPUTERSECOND

[2437] SUBSTITUTED FONTS ARE SUBPIXEL OPTIMIZED FONTS

[2438] AN OPERATING SYSTEM FUNCTION MAKES FONT SUBSTITUTION

[2439] A HOOK INTERCEPT SUCH AN OPERATING SYSTEM CALL AND A FUNCTIONEVOKED BY THE HOOK IN RESPONSE TO THE CALL MAKES THE FONT SUBSTITUTIONINSTEAD OF THE OPERATING SYSTEM FUNCTION WHOSE CALL WAS INTERCEPTED

[2440] USE OF SUBPIXEL OPTIMIZED FONTS IN OS OF COMPUTER

[2441] APPLICATION IS A BROWSERS

[2442] APPLICATION IS NOT A BROWSER

[2443] USE OF METRICS FOR SUBPIXEL OPTIMIZED FONTS IN FIRST COMPUTER TOLAYOUT DIGITAL CONTENT, DOWNLOAD LAYOUT INFORMATION, DISPLAY LAID OUTFONTS WITH SUBPIXEL OPTIMIZED FONTS

[2444] DIGITAL CONTENT ARE WEB PAGES

[2445] DIGITAL CONTENT ARE WINDOWS DRAWN BY APPLICATIONS INCLUDING GUIELEMENTS

[2446] I-Group Innovations

[2447] A SERVER SYSTEM RECEIVES REQUESTS FOR FONTS OVER A COMPUTERNETWORK AND RESPONDING TO SUCH REQUESTS BY SENDING THE REQUESTED FONTSIN A SUBPIXEL OPTIMIZED FORM SBACK OVER THE COMPUTER NETWORK

[2448] FONTS SENT IN RESPONSE ARE SUBPIXEL OPTIMIZED BITMAPS

[2449] FONTS SENT IN RESPONSE ARE OUTLINE FONTS WHICH HAVE BEEN HINTEDFOR DISPLAY AS SUBPIXEL RESOLUTION

[2450] REQUESTS ARE FOR SUBSETS OF THE CHARACTERS OF A GIVEN FONT

[2451] REQUESTS ARE FOR A SUBSET OF THE ROMAN FONT

[2452] REQUEST IS AN HTTP REQUEST

[2453] HTTP REQUEST CONTAINS A URL CONTAINING A PATH SPECIFICATIONIDENTIFYING A SET OF ONE OR MORE FONT OUTLINES OR FONT BITMAPS

[2454] REQUEST INDICATES IF SUBPIXEL OPTIMIZED OR NON-SUBPIXEL OPTIMIZEDFONT ARE TO BE SENT IN RESPONSE TO REQUEST, AND THE FONTS DOWNLOADEDEITHER ARE OR ARE NOT SUBPIXEL OPTIMIZED, RESPECTIVELY, IH RESPONSE TOSUCH AN INDICATION

[2455] SERVER RESPONDE TO EQUEST BY DYNAMICALLY CREATES SUBPIXELOPTIMIZED FONT BITMAPS FOR ITS REQUESTED CHARACTER AND FONT FROM A FONTOUTLINE

[2456] SERVER CACHES FONT BITMAP SO CREATED AND IF BITMAP IS IN CACHENEXT TIME A REQUEST FOR IT IS RECIVED, IT SERVES THE CACHED BITMAPRATHER THAN CREATING THE BITMAP ANEW FROM ITS CORRESPONDING FONT OUTLINE

[2457] SERVER STORES FONT BITMAPS AND SERVES SUCH STORED BITMAPS INRESPONSE TO REQUESTS

[2458] INTERNET SERVER RECEIVES HTTP REQUESTS FOR CHARACTER-FONT SHAPESIN MEDIA WHICH IT DID NOT SERVE AND DOWNLOADS REQUESTED CHARACTER-FONTSHAPES TO REQUESING MACHINE IN RESPONSE

[2459] WEB SERVER SERVES FONTS OVER INTERNET IN RESPONSE TO HTTPREQUESTS FOR SUBSETS OF INDIVIDUAL CHARACTERS AND CHARGES ACCOUNT FORDOWNLOADS

[2460] WEB SERVER HAS AUTOMATIC SOFTWARE ALLOWING PARTIES TO PLACE FONTSFOR SALE ON NETWORK

[2461] SITE HAS SOFTWARE WHICH AUTOMATICALLY CHECK HOW CLOSE A FONTBEING OFFERED IS TO OTHER FONT AND PROVIDES WARNING IF TOO CLOSE

[2462] CHARGES AS A FUNCTION OF NUMBER OF DOWNLOADS

[2463] REQUEST IDENTIFIES SOURCE OF MEDIA CONTAINING TAGS IDENTIFYINGREQUESTED FONTS AND CHARGE IS TO SOURCE OF THAT MEDIA

[2464] REQUEST IDENTIFIES PARTY RECEIVING REQUESTED FONT AND CHARGE ISTO THAT PARTY

[2465] SERVING WEB PAGES WITH URLS POINTING TO A REMOTE INTERNET SITEDEFINING WHERE A BROWSER PROGRAM RECEIVING SUCH SERVED WEB PAGES CANAUTOMATICALLY OBTAIN ONE OR MORE CHARACTER-FONT SHAPES FOR USE INDISPLAY OF THE PAGE

[2466] A COMPUTER RECEIVES DIGITAL CONTENT, IT SENDS AN HTTP REQUESTOVER A COMPUTER NETWORK FOR BITMAPS OF CHARACTER FONT SHAPES IT NEEDS TORENDERD THE PAGE WHICH IT DOES NOT HAVE, WHEN IT RECEIVES THE REQUESTEDFONT BITMAPS IT USES THEM TO RENDER THE PAGE AND CACHES THEM, WHEN THEWEB BROWSER RECEIVES ANOTHER PAGE IT CHECKS ITS CACHE TO SEE IF IT HASALL THE CHARACTERS FONT BITMAPS NEEDED TO RENDER THE PAGE AND SENDS ANHTTP REQUEST OVER A COMPUTER NETWORK FOR THE CHARACTER FONT BITMAPS ITNEEDS TO RENDER THE PAGE

[2467] REQUESTS SUBSETS OF A FONTS CHARACTERS

[2468] SOME SUCH SUBSETS ARE LESS THAN ALL CHARACTERS IN ROMAN ALPHABET

[2469] ALL SUBSETS ARE INDIVIDUAL CHARACTERS

[2470] FONT BITMAPS ARE SUBPIXEL OPTIMIZED BITMAPS

[2471] SELLING SOFTWARE WHICH DOES THIS

[2472] DISTRIBUTING SOFTWARE WHICH RESPONDS TO REQUEST FOR FONT WHICH ITDOES NOT HAVE BY SEEKING IT FROM A GLOBAL INTERNET URL

[2473] PROGRAMMING USES HTTP REQUESTS TO REQUEST FONTS FROM DIFFERENTPARTIES

[2474] HTTP REQUEST CONTAINS A URL CONTAINING A PATH SPECIFICATIONIDENTIFYING A SET OF ONE OR MORE FONT OUTLINES OR FONT BITMAPS

[2475] PROGRAMMING CACHES FONTS OF ONE OR MORE CHARACTERS WHICH HAVEBEEN PREVIOUSLY REQUESTED AND RECEIVED AND DETERMINES WHETHER TO REQUESTA GIVEN COMBINATION OF ONE OR MORE CHARACTERS FROM THE SERVER AS AFUNCTION OF WHETHER THOSE ONE OR MORE CHARACTERS ARE CURRENTLY CACHED

[2476] PROGRAMMING IS SOLD AS PART OF A WEB BROWSER

[2477] PROGRAMMING IS SOLD AS PART OF A THIN CLIENT WEB BROWSER

[2478] A WEB BROWSER RECEIVES A WEB PAGE, IT SENDS A REQUEST OVER THEINTERNET FOR THE INDIVIDUAL CHARACTER FONT SHAPES IT NEEDS TO RENDERDTHE PAGE WHICH IT DOES NOT HAVE, WHEN IT RECEIVES THE REQUESTED FONTS ITUSES THEM TO RENDER THE PAGE AND CACHES THEM, WHEN THE WEB BROWSERRECEIVES ANOTHER PAGE IT CHECKS ITS CACHE TO SEE IF IT HAS ALL THECHARACTERS NEEDED TO RENDER THE PAGE AND SENDS A REQUEST OVER THEINTERNET FOR THE INDIVIDUAL CHARACTER FONT SHAPES ITS NEEDS TO RENDERTHE PAGE

[2479] FONTS ARE SUBPIXEL OPTIMIZED FONTS

[2480] REQUEST FOR FONTS IS AN HTTP REQUEST

[2481] HTTP REQUEST INCLUDES A URL SPECIFYING A PATH NAME WHICH UNIQUELYIDENTIFIES AN INDIVIDUAL CHARACTER OF AN INDIVIDUAL FONT

[2482] SENDING AND/OR RECEIVING AN HTTP REQUEST FOR ONE OR MORE FONTBITMAP WITH A URL CONTAINING A PATH SPECIFICATION IDENTIFYING A SET OFONE OR MORE FONT OUTLINES OR FONT BITMAPS

[2483] J-Group Innovations

[2484] DISPLAYING TEXT IN AN EDIT FIELDS USING SUB-PIXEL OPTIMIZED FONTS

[2485] DISPLAYING GUI ELEMENTS WITH SUB-PIXEL OPTIMIZED FONTS, SUCH ASLABELS ON BUTTONS, CHECK BOXES, RADIO BUTTONS, MENU ITEMS, AND POP-UPKEYBOARDS

[2486] RESPONDING TO A CALL FOR A FUNCTION TO DRAW A BASIC GEOMETRICSHAPE ON A SCREEN, BY RENDERING A SUBPIXEL OPTIMZED VERSION OF THATBASIC SHAPE

[2487] GEOMETRIC FIGURE IS A STRAIGHT LINE, A CURVED LINE, AN ELIPSE, ORAA RECTANGLE

[2488] CALL MATHEMATICALLY DEFINES A SHAPE WHICH PARTIALLY COVERS ONE ORMORE PIXELS ON THE SCREEN, SCREEN IS A SUBPIXEL ADDRESSABLE SCREEN, ANDSUBPIXEL OPTIMIZATION IS USED TO RENDER THE COVERAGE OF SUCH PARTIALLYCOVERED PIXELS WITH THE HIGHER PERCEPTABLE SPATIAL RESOLUTION MADEPOSSIBLE BY ASSIGNING DIFFERENT LUMINOSITY VALUES TO DIFFERENT SUBPIXELSOF INDIVIDUAL PARTIALLY COVERED PIXELS AS A FUNCTION OF THE COVERAGE BYTHE SHAPE OF THE PORTION OF SUCH PIXELS CORRESPONDING TO INDIVIDUALSUBPIXELS, SO AS TO VISUALLY INDICATE THE SHAPES INTERMEDIARY COVERAGEOF SUCH PIXELS

[2489] WHERE SHAPE IS TO BE A MONOCHROMATIC SHAPE, USING COLOR BALANCINGTO REMOVE COLOR IMBALANCES INTRODUCED IN TO THE INTENDED MONOCHROMATICCOLOR OF THE SHAPE BY ASSIGNING LUMINOSITY VALUES TO SUBPIXELS BASED ONTHEIR COVERAGE BY THE SHAPE

[2490] USING NON-LINEAR COLOR BALANCING

[2491] A SPECIFIC FOREGROUND COLOR HAS BEEN SPECIFIED FOR THE SHAPE,FOREGROUND COLOR IS SHIFTED TOWARD AN MORE GREYSCALE VALUE TO IMPROVETHE SPATIAL VISUAL SPATIAL RESOLUTION PRODUCED BYH SUCH FOR THE

[2492] THE CALLED FUNCTION AND THE SUBPIXEL OPTIMIZATION ARE PART OF ANOPERATING SYSTEM

[2493] THE CALLELD FUNCTION IS PART OF AN OPERATING SYSTEM, BUT THESUBPIXEL OPTIMIZATION IS NOT

[2494] RESPONDING TO A CALL FOR A FUNCTION TO DRAW A BITMAP OF A GUIELEMENT BY RENDERING A SUBPIXEL OPTIMZED VERSION OF THAT BITMAP

[2495] CALL IS SPECIFICALLY FORE THE CREATION OF A GUI ELEMENTS

[2496] CALL IS FOR A BITMAP DRAW AND BITMAP TO BE DRAWN IS A GUI ELEMENT

[2497] BITMAP HAS ALREADY BEEN SUBPIXEL OPTIMIZED BY TIME OF THE CALL

[2498] BITMAP HAS NOT BEEN SUBPIXEL OPTIMIZED BY THE TIME OF THE CALLAND IT'S ASSOCIATED BITMAP IS BOTH SCALED DOWN AND SUBPIXEL OPTIMIZED INRESPONSE TO THE CALL

[2499] BICOLOR SUBPIXEL OPTIMIZTION IS USED ON BITMAP

[2500] MULTICOLOR SUPIXEL OPTIMIZATION IS USED ON BITMAP

[2501] SUBPIXEL OPTIMIZED FONT BITMAPS ARE SUPERIMPOSED ON IMAGE OF GUIELEMENTS

[2502] A METHOD OF DISPLAYING AN ORIGINAL IMAGE WITH A CORRESPONDINGROLL-OVER IMAGES, IN WHICH BOTH THE ORIGINAL IMAGES AND THE ROLL-OVERIMAGES ARE SUBPIXEL OPTIMIZED IMAGES

[2503] SUBPIXEL OPTIMIZED ANIMATIONS IN WHICH THE MULTIPLE IMAGES OF THEANIMIATION ARE EACH SUBPIXEL OPTIMIZED

[2504] DISPLAYING DVD VIDEO OUTPUT HAVING A GIVEN RESOLUTION ON ASUBPIXEL ADDRESSABLE DISPLAY ARRAY OF WHOLE PIXELS HAVING A LOWERRESOLUTION IN AT LEAST ONE DIMENSION THAN THE GIVEN RESOLUTION OF THEDVD OUTPUT AND USING SUBPIXEL OPTIMIZATION TO DISPLAY THE DVD VIDEOOUTPUT AT HIGHER PERCEPTABLE SPATIAL RESOLUTION THAN THE DISPLAY ARRAY'SWHOLE PIXEL RESOLUTION

[2505] USER CAN CHANGE DISPLAY ARRAY'S RESOLUTION

[2506] DISPLAYING HDTV VIDEO OUTPUT HAVING A GIVEN RESOLUTION ON ASUBPIXEL ADDRESSABLE DISPLAY ARRAY OF WHOLE PIXELS HAVING A LOWERRESOLUTION IN AT LEAST ONE DIMENSION THAN THE GIVEN RESOLUTION OF THEHDTV OUTPUT AND USING SUBPIXEL OPTIMIZATION TO DISPLAY THE DVD VIDEOOUTPUT AT HIGHER PERCEPTABLE SPATIAL RESOLUTION THAN THE DISPLAY ARRAY'SWHOLE PIXEL RESOLUTION

[2507] USER CAN CHANGE DISPLAY ARRAY'S RESOLUTION

[2508] DISPLAYING MULTIMEDIA OUTPUT WHICH CAN REPRESENT IMAGES,INCLUDING MOVING IMAGES, AND BICOLOR SHAPES, SUCH AS TEXT, INCLUDINGMOVING BICOLOR SHAPES, AND USING SUBPIXEL OPTIMIZATION ON BOTH SAIDIMAGES AND SHAPES

[2509] DOWNLOADING WEB APPLETS OVER A COMPUTER NETWORK, WHICH APPLETSDISPLAY SUBPIXEL OPTIMIZED BITMAPS ON A CLIENT COMPUTER

[2510] BY COPYING A SUBPIXEL OPTIMIZED BITMAP DOWNLOADED AS PART OFAPPLET ONTO CLIENT SCREEN

[2511] BY GENERATING A NEW SUBPIXEL OPTIMIZED BITMAP ONTO CLIENT SCREEN

[2512] DOWNLOADING SUB-PIXEL OPTIMIZED VIDEO AND DISPLAYING IT ON SCREENOF A CLIENT COMPUTER

[2513] VIDEO IS REQUESTED BY A VIEWER COMPUTER, REQUESTED VIDEO ISDOWNLOADED FROM A FIRST COMPUTER TO A PROXY COMPUTER, THEN VIDEO ISSUBPIXEL OPTIMIZED BY THE PROXY COMPUTER, AND DOWNLOADED TO ANDDISPLAYED ON THE VIEWER COMPUTER

[2514] VIDEO IS COMPRESSED AFTER IT HAS BEEN SUBPIXEL OPTIMIZED, ISDOWNLOADED IN COMPRESSED FORM, IS UNCOMPRESSED, AND THEN DISPLAYED

[2515] FRAME TO FRAME COMPRESSION IS USED IN COMPRESSION OF SUB-PIXELOPTIMIZED VIDEO

[2516] VIDEO IS SCALED DOWN AT SAME TIME IS ITS SUBPIXEL OPTIMIZED

[2517] SUB-PIXEL OPTIMIZED GRAPHIC ELEMETNS FOR ANIMATION

[2518] GRAPHIC ELEMETNS HAVE BEEN DOWNSCALED FROM A SOURCE IMAGE ANDSUBPIXEL OPTIMIZED BEFORE THE PROGRAM SESSION OF PROGRAM THAT IS DRAWINGTHEM

[2519] GRAPHIC ELEMENT ARE DOWNSCALED FROM A SOURCE IMAGE AND SUBPIXELOPTIMIZED DURING THE PROGRAM SESSION THAT IS DRAWING THEM

[2520] MOVING GRAPHIC ELEMENT ON A SUBPIXEL ADDRESSABLE SCREEN IN AMANNER WHICH SHIFTS THE IMAGES POSITON RELATIVE TO THE PIXEL PATTERNWHICH REPRSENT IT AT DIFFENT POSITIONS TO REFLECT THE POSITON OF THEIMAGE RELATIVE THE PIXELS THAT REPRESENT IT AT A HIGER SPATIALRESOLUTION THAN THE RESOLUTION OF WHOLE PIXELS IN THE DISPLAY

[2521] MOVING GRAHIC ELEMENT IN UNITS OF HOLE PIXELS IN RESPONSE TOANIMATED MOVEMENT CALCULATED IN FINER INCREMENTS THAN WHOLE PIXELS

[2522] MOVING POSTION OF AN IMAGE BEING DISPLAYED ON A SUBPIXELADDRESSABLE DISPLAY IN INCREMENTS OF MOTION FINER THAN WHOLE PIXELS, ANDDISPLAYING IMAGE WITH DIFFERENT SUBPIXEL OPTIMIZED BITMAPS AT DIFFERENTPOSITIONS IN SUCH MOVEMENT TO REFLECT THE DIFFERENT COVERAGE OF ASDIFFRERNT POSITONS

[2523] IMAGE IS OF A BITMAP

[2524] IMAGE IS OF A CHARACTER SHAPE

[2525] IMAGE IS OF VECTOR DRAWING NON-CHARACTER SHAPE

[2526] DISPLAYING ELECTRONIC INK USING SUBPIXEL OPTIMIZED BITMAPS

[2527] K-Group Innovations

[2528] DISPLAYING DIGITAL CONTENT BY ACCESSING IT, LAYING IT OUT AT AVIRTUAL PIXEL RESOLUTION USING LAYOUT SIZES FOR IMAGE AND FONTS ANDDISPLAYING A PORTION OF LAYOUT AT A SMALLER DISPLAY RESOLUTION BYDISPLAYING SAID IMAGES AND TEXT AT COORDINATES AND SIZES SCALED DOWN BYA SCALE FACTOR, WITH THE DISPLAY OF TEXT BEING COMPOSED FROM FONTBITMAPS HAVING CHARACTER SHAPES AND PIXEL ALIGNMENTS SELECTED TO IMPROVEREADABILITY AT SAID SCALED DOWN SIZE

[2529] 1. A method of displaying digital content on a screen, saidmethod comprising:

[2530] accessing said digital content including images and text strings;

[2531] laying out said images and text at a virtual pixel resolutionusing layout pixel sizes for said images and text, so as to assign ahorizontal and vertical virtual position in said layout to each of saidimages and each portion of a string of text displayed on a given line;and

[2532] drawing at least a portion of said layout on said screen;

[2533] wherein:

[2534] the displayed portion of the layout has a displayed pixelresolution that is scaled down by a scale factor relative to the pixelresolution of said portion in the layout performed at said virtual pixelresolution;

[2535] images and text in said displayed portion of the layout are shownat pixel coordinates that corresponding to the positions of said imagesand text in the layout, as scaled down by said scale factor;

[2536] the images and text are drawn in said display at scaled-downpixel sizes that correspond to the pixel sizes used for said images andtext in the layout, as scaled down by said scale factor;

[2537] the image of a string of text in said display is composed from asuccession of font bitmaps having pixel sizes that are scaled down bysaid scale factor relative to the size allocated to the characters ofsaid string in said layout; and

[2538] the shape and pixel alignment of a given character represented insaid display by one of said font bitmaps have been selected as afunction of the given size of said bitmap to improve the readability ofsaid bitmap at said given bitmap size.

[2539] DIGITAL CONTENT IS A WEB PAGE

[2540] 2. A method as in Innovation 1 wherein said digital content is aweb page.

[2541] THE IMAGE SIZES IN LAYOUT ARE THOSE SPECIFIED IN WEB PAGE

[2542] 3. A method as in Innovation 2 wherein said layout image sizes atwhich images are laid out in said web pages are sizes of said imagesspecified by the content of said web page.

[2543] ALLOWING USER TO SELECT TO HAVE SUCH SCALED-DOWN DISPLAYS OFGIVEN LAYOUT PERFORMED AT DIFFERENT SCALE FACTORS, WITH DIFFERENT FONTSIZES USED FOR DISPLAY OF SIMILAR TEXT AT DIFFERENT SELECTED SCALEFACTORS, AND IN WHICH THE SHAPE AND PIXEL ALIGNMENT OF CORRESPONDINGCHARACTERS IN FONT BITMAPS OF SUCH DIFFERENT FONT SIZES ARE DIFFERENT TOIMPROVE READABILITY OF FONT BITMAPS AT EACH SUCH DIFFERENT FONT SIZE

[2544] 4. A method as in Innovation 2 wherein

[2545] said method includes allowing a user to select to have saidscaled-down display of a given layout performed at different scalefactors;

[2546] different font sizes are used in said scaled-down display forsimilar text at different selected scale factors; and

[2547] the shape and pixel alignment of corresponding characters in thefont bitmaps of such different font sizes are different to improvereadability of font bitmaps at each of such different font sizes.

[2548] SCALED-DOWN TEXT SIZES INCLUDES 8 PIXELS PER EM OR LESS

[2549] 5. A method as in Innovation 2 wherein said scaled-down pixelsizes include font sizes of 8 pixels per em or less.

[2550] FONT HAS BEEN HINTED FOR SAID SMALLER TEXT SIZE

[2551] 6. A method as in Innovation 5 wherein the characters shapesrepresented by font bitmaps of said pixel size of eight pixel per em orless have been hinted for improved readability at such size.

[2552] FONT BITMAPS OF DIF CHARS AT A SMALLER TEXT SIZE HAVE DIFRELATIVE DIMENSIONS AS FUNCTION OF DIF CHAR SHAPES AND PIXEL ALIGNMENTSTO IMPROVE READABILITY AT SMALLER TEXT SIZE; SIZE OF TEXT STRING ATSMALLER TEXT SIZE IS FUNCTION OF DIMENSIONS OF FONT BITMAP OF EACH CHARIN STRING AT SMALLER TEXT SIZE; AND SIZE USED FOR STRING IN LAYOUTCORRESPONDS TO THE SIZE AT THE SMALLER TEXT SIZE, SCALED UP BY THE SCALEFACTOR.

[2553] 7. A method as in Innovation 2 wherein:

[2554] the size of a given text string at the given scaled-down textsize is a function of the pixel dimensions of each character in thestring at the given scaled-down pixel size, where the pixel dimensionsof each character is determined in part at a function of the dimensionsof the pixel bitmap needed to represent the particular character's shapeat a desired level of readability at said scaled-down text size; and

[2555] the size used for a given string in the layout corresponds to thesize of the given string at the given scaled-down text size at whichsaid string will be drawn in said scaled-down display, scaled-up by saidscale factor.

[2556] COMPUTER HAS OS THAT DISPLAY DIGITAL CONTENT ON SCREEN INPORTRAIT ORIENTATION, AND SCALED DOWN DISPLAY IS IN LANDSCAPEORIENTATION USING FONT BITMAPS HAVING LANDSCAPE ORIENTATION

[2557] 8. A method as in Innovation 2 wherein:

[2558] said screen is part of a computer having an operating system thatdisplays digital content, including text strings composed on saidcomputer from individual font bitmaps, on said screen in a portraitorientation; and

[2559] said scaled-down display of a portion said layout is drawn onsaid screen in a landscape orientation;

[2560] wherein said composing of text from individual font bitmapscomposes text in a landscape orientation using font bitmaps having alandscape orientation relative to said screen.

[2561] FONTS BITMAPS ARE SUBPIXEL OPTIMIZED, BASED ON SUBPIXEL COVERAGEVALUE AND COLOR BALANCING, FOR SCREEN'S SUBPIXEL PATTERN WHEN DRAWN TOIN LANDSCAPE ORIENTATION

[2562] 9. A method as in Innovation 8 wherein:

[2563] the screen on which the scaled down display is drawn has pixelscomprised of a given arrangement of separately-addressable,differently-colored subpixels;

[2564] said arrangement of subpixels within pixels of the screen causesubpixel color to vary:

[2565] along a first bitmap display axis relative to bitmaps drawn onsaid screen in a portrait orientation; and

[2566] along a second, perpendicular bitmap display axis relative tobitmaps drawn on said screen in a landscape orientation;

[2567] a given font bitmap used to compose the image of text in saidscaled-down display is a subpixel-optimized bitmap that:

[2568] is optimized for display in which said subpixel color variationoccurs along said second display axis relative to said font bitmap; and

[2569] assigns a luminosity value to each given sub-pixel of a screenpixel having said given arrangement of differently-colored subpixelsthat is drawn to by said font bitmaps as a function of:

[2570]  a coverage value representing the percent of the given subpixelthat is covered by a character shape being represented by the fontbitmap;

[2571]  in the case of at least some subpixels of said font bitmap, acolor balancing distribution of a percent of the given subpixel'scoverage value from said coverage value to coverage values of nearbysubpixels, including subpixels of different colors, made to a preventcolor imbalance that would result from the difference between the givensubpixel's coverage value and the coverage values of a given set of oneor more nearby subpixels of different colors; and

[2572]  in the case of at least some subpixels of said font bitmap, sucha color balancing distribution to the given subpixel's coverage value ofa portion of coverage values from one or more nearby subpixels.

[2573] REPLACING FONTS SPECIFIED BY WEB PAGE AS BEING FONTS TO BEDISPLAYED AT DIFFERENT SIZE WITH FONTS OF THE SAME SIZE BEFOREPERFORMING SAID LAYOUT AND DISPLAY TO A GREATER QUANTITY OF READABLETEXT TO FIT IN THE SCALED-DOWN DISPLAY

[2574] 10. A method as in Innovation 2 wherein different portions oftext specified by the web page as being different types of text that arecommonly displayed with different size fonts are represent with fonts ofthe same size before performing said layout and display to allow agreater quantity of readable text to fit in the scaled-down display.

[2575] FONTS BITMAPS ARE ANTI-ALIASED AND CHARACTER SHAPE AND ALIGNMENTHAVE BEEN SELECTED TO INCREASE ALIGNMENT OF SHAPE BOUNDARIES WITH PIXELBOUNDARIES

[2576] 11. A method as in Innovation 1 wherein:

[2577] the font bitmaps used to compose the image of text in saidscaled-down display are anti-aliased bitmaps that assign a color valueto a given screen pixel as a graded function of a coverage valuerepresenting the percent of the given pixel that is covered by acharacter shape being represented by the font bitmap; and

[2578] the shape and pixel alignment of a character represented by sucha font bitmap has been selected to increase the degree of alignment ofedges of the character shape with pixel boundaries of the font bitmap asa function of the particular pixel size of each such a font bitmap.

[2579] FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL COVERAGEVALUE AND COLOR BALANCING

[2580] 12. A method as in Innovation 11 wherein:

[2581] the screen on which the scaled-down display is drawn has pixelscomprised of a given arrangement of separately-addressable,differently-colored subpixels;

[2582] the anti-aliased font bitmaps used to compose the image of textin said scaled-down display are subpixel-optimized bitmaps that assign aluminosity value to each given subpixel of a screen pixel having saidgiven arrangement of differently-colored subpixels as a function of:

[2583] a coverage value representing the percent of the given subpixelthat is covered by a character shape being represented by the fontbitmap;

[2584] in the case of at least some subpixels of said font bitmaps, acolor balancing distribution of a percent of the given subpixel'scoverage value from said coverage value to coverage values of nearbysubpixels, including subpixels of different color, made to a preventcolor imbalance that would result from the difference between the givensubpixel's coverage value and the coverage values of a given set of oneor more nearby subpixels of different colors; and

[2585] in the case of at least some subpixels of said font bitmaps, sucha color balancing distribution to the given subpixel's coverage value ofa portion of coverage values from one or more nearby subpixels.

[2586] COLOR BALANCING DISTRIBUTES THAT PORTION OF A SUBPIXEL'S COVERAGEVALUE THAT CAUSES COLOR IMBALANCE WITHIN THE SUBPIXEL'S PIXEL

[2587] 13. A method as in Innovation 12 wherein said color balancingdistributions only distribute portions of a subpixel's coverage valuethat causes color imbalance within the whole pixel of which it is part.

[2588] IMAGES ARE SUB-PIXEL OPTIMIZATION WITH LUMINANCE ASSIGNED TO EACHSUBPIXEL BEING A FUNCTION OF LUMINANCE OF ITS COLOR VALUE IN ACORRESPONDING WINDOW IN HIGHER RESOLUTION IMAGE

[2589] 14. A method as in Innovation 12 wherein:

[2590] the images drawn in said scaled-down display aresubpixel-optimized images that assign a luminosity to eachdifferently-colored subpixel in the display of such a scaled-down imageas a function of the amount of luminosity of the given subpixel's colorfound in a window associated with the given subpixel in the higherresolution image the scaled-down image represents; and

[2591] the window in the higher resolution image associated with eachsubpixel of a given pixel has a different position relative to thehigher resolution image that corresponds to the different position ofits corresponding subpixel in the scaled-down image.

[2592] FIRST COMPUTER ACCESSES AND LAYS OUT CONTENT, AND SCALES DOWNIMAGES, AND SECOND COMPUTER DRAWS SCALED DOWN DISPLAY, INCLUDINGCOMPOSITION OF TEXT IMAGES FROM FONT BITMAPS

[2593] 15. A method as in Innovation 1 wherein:

[2594] a first computer device performs said accessing of the digitalcontent, laying out of said digital content; said scaling down of saidimages;

[2595] a second computer device has said screen and performs saiddrawing of the scaled-down display on said screen, including thecomposing of text images from font bitmaps; and

[2596] said coordinates of images and text produced as a result of saidlayout, said scaled down images, and said text contained in said digitalcontent are download from said first computer device to said secondcomputer device.

[2597] DIGITAL CONTENT IS SCREEN IMAGE CREATED AT VIRTUAL RESOLUTION BYONE OR MORE APPLICATIONS

[2598] 16. A method as in Innovation 1 wherein:

[2599] said digital content is a screen image produced at said virtualresolution by one or more application programs; and

[2600] said scaled-down display shows said portion of said screen imagewith the images and text of said screen image and their positions scaleddown by said scale factor.

[2601] ACCESSING WEB PAGE, THEN—ON SCREEN OF COMPUTING SYSTEM WITH OSTHAT DISPLAYS A GRAPHICAL USER INTERFACE IN A PORTRAITORIENTATION—DISPLAYING A SCALED-DOWN REPRESENTATION OF WEB PAGE IN ALANDSCAPE ORIENTATION, INCLUDING DISPLAYING IN A LANDSCAPE ORIENTATIONIMAGES THAT ARE SCALED-DOWN AND TEXT COMPOSED OF FONTS BITMAPS DISPLAYEDIN A LANDSCAPE ORIENTATION

[2602] 17. A method of displaying a web page comprising:

[2603] accessing the web page, including one or more images and one ormore text strings;

[2604] displaying in a landscape orientation, in a scaled-down manner, aportion of said web page, including at least some of images and textstrings;

[2605] wherein said displaying is performed on a screen of a computerhaving an operating system that displays an associated graphical userinterface on said screen in a portrait orientation;

[2606] wherein the scaled-down displaying of said web page includes:

[2607] displaying a given images at a scaled-down pixel size; and

[2608] displaying a given text strings with a string image composed onsaid computer from a plurality of font bitmaps corresponding to thecharacters of said string when displayed in said landscape orientation;and

[2609] the shape and pixel alignment of a given character represented insaid display by one of said font bitmaps have been selected as afunction of the given size of said bitmap to improve the readability ofsaid bitmap at said given bitmap size.

[2610] OS CAN ONLY DISPLAY GUI IN PORTRAIT ORIENTATION

[2611] 18. A method as in Innovation 17 wherein the operating system canonly display said graphical using interface on said screen in saidportrait orientation.

[2612] OS CAN DISPLAY GUI IN BOTH PORTRAIT AND LANDSCAPE ORIENTATION

[2613] 19. A method as in Innovation 17 wherein the operating system candisplay said graphical using interface on said screen in either saidportrait or said landscape orientation.

[2614] ALLOWING USER TO SELECT TO HAVE SUCH SCALED-DOWN DISPLAYSPERFORMED AT DIFFERENT SCALE FACTORS, WITH DIFFERENT FONT SIZES USED FORDISPLAY OF SIMILAR TEXT AT DIFFERENT SELECTED SCALE FACTORS, AND INWHICH THE SHAPE AND PIXEL ALIGNMENT OF CORRESPONDING CHARACTERS IN FONTBITMAPS OF SUCH DIFFERENT FONT SIZES ARE DIFFERENT TO IMPROVEREADABILITY OF FONT BITMAPS AT EACH SUCH DIFFERENT FONT SIZE

[2615] 20. A method as in Innovation 17 wherein

[2616] said method includes allowing a user to select to have saidscaled-down display performed for a given web page at different scalefactors;

[2617] the scale-down pixel size at which each images is shown indisplays performed at different scale factors varies as a function ofsaid different scale factors;

[2618] the sizes of the font bitmaps shown in said string images indisplays performed at different scale factors varies as a function ofsaid different scale factors; and

[2619] the shape and pixel alignment of a given character in thedifferent font bitmaps shown for the given character in displaysperformed at different scale factors are different to improvereadability of the character at each of the different font bitmap sizesused to represent the character at different scale factors.

[2620] ANTI-ALIASED FONT BITMAPS

[2621] 21. A method as in Innovation 17 wherein:

[2622] the font bitmaps used to compose one or more of said stringimages are anti-aliased bitmaps that assign a color value to givenscreen pixel as a graded function of a coverage value representing thepercent of the given pixel that is covered by a character shape beingrepresented by the font bitmap; and

[2623] the shape and pixel alignment of a character represented by sucha font bitmap has been selected to increase the degree of alignment ofedges of the character shape with pixel boundaries of the font bitmap asa function of the particular pixel size of each such a font bitmap.

[2624] FONT BITMAPS ARE 8 PIXELS PER EM AND THEIR CHARACTERS HAVE ASHAPE AND PIXEL ALIGNMENT SELECTED TO IMPROVE READABILITY AT SUCH ASMALL SIZE

[2625] 22. A method as in Innovation 21 wherein:

[2626] font bitmaps used to compose string images include small fontbitmaps having a small font size of eight pixels per em or less; and

[2627] the shape and pixel alignment of a character represented by sucha small font bitmap has been selected to increase the degree ofalignment of edges of the character shape with pixel boundaries of thesmall font bitmap as a function of the particular pixel size of eachsuch small font bitmap.

[2628] FONT BITMAPS REPRESENT MAJORITY OF CHARACTERS WITHIN ADVANCEWIDTH OF 4 PIXEL COLUMNS OR LESS

[2629] 23. A method as in Innovation 22 wherein the font bitmaps of saidsmall font size represent a majority of characters of the Roman alphabetwithin an advance width of four pixel columns or less.

[2630] WITH X-HEIGHT GREATER THAN 4 PIXELS

[2631] 24. A method as in Innovation 23 wherein the font bitmaps of saidsmall font size represent a majority of lowercase letters with anx-height greater than four pixels.

[2632] FONTS BITMAPS ARE SUBPIXEL OPTIMIZED BASED ON SUBPIXEL COVERAGEVALUE (USING SUBPIXEL ARRANGEMENT IN LANDSCAPE ORIENTATION) AND COLORBALANCING

[2633] 25. A method as in Innovation 21 wherein:

[2634] the screen on which the scaled-down display is drawn has pixelscomprised of separately-addressable, differently-colored subpixels, inwhich the differently colored subpixels of each pixel have a firstsubpixel arrangement when said screen viewed in the landscapeorientation, and a second subpixel arrangement when the screen viewed inthe portrait orientation;

[2635] the anti-aliased font bitmaps used to compose said text imagesare subpixel-optimized bitmaps that assign a luminosity value to eachgiven subpixel of a screen pixel having said first subpixel arrangementas a function of:

[2636] a coverage value representing the percent of the given subpixelthat is covered by a character shape being represented by the fontbitmap;

[2637] in the case of at least some subpixels of said font bitmaps, acolor balancing distribution of a percent of the given subpixel'scoverage value from said coverage value to coverage values of nearbysubpixels, including subpixels of different color, made to a preventcolor imbalance that would result from the difference between the givensubpixel's coverage value and the coverage values of a given set of oneor more nearby subpixels of different colors; and

[2638] in the case of at least some subpixels of said font bitmaps, sucha color balancing distribution to the given subpixel's coverage value ofa portion of coverage values from one or more nearby subpixels.

[2639] SUBPIXEL RESOLUTION IS HIGHER ALONG LANDSCAPE AXIS THAN ALONGPORTRAIT AXIS, ALLOWING INCREASE IN SPATIAL RESOLUTION PROVIDED BYSUBPIXEL OPTIMIZATION TO PROVIDE EVEN GREATER HORIZONTAL RESOLUTION FORTEXT OF WEB PAGE SHOWN IN LANDSCAPE ORIENTATION

[2640] 26. A method as in Innovation 25 wherein:

[2641] the subpixels of a given pixel in said screen vary in color alongthe horizontal direction when said screen is viewed in said landscapedirection;

[2642] so the added resolution made possible by subpixel optimizationincreases the horizontal resolution available to show text charactersdrawn on said screen in the landscape orientation.

[2643] COLOR BALANCING DISTRIBUTES THAT PORTION OF A SUBPIXEL'S COVERAGEVALUE THAT CAUSES COLOR IMBALANCE WITHIN THE SUBPIXEL'S PIXEL

[2644] 27. A method as in Innovation 25 wherein said color balancingdistributions only distribute portions of a subpixel's coverage valuethat causes color imbalance within the whole pixel of which it is part.

[2645] FONT BOUNDARIES ALIGNED WITH PIXEL BOUNDARIES IN BITMAPS TOMINIMIZE COLOR BALANCING

[2646] 28. A method as in Innovation 27 wherein the character shapesrepresented by said subpixel-optimized font bitmaps and the alignment ofsuch shapes to the pixels in said bitmaps have been selected as afunction of the size of such bitmaps to improve the alignment of theedges of such shapes which edges of bitmap pixels, so as to decrease thedifferences between subpixel coverage values within the pixels of suchbitmaps that require color balancing to prevent color imbalances.

[2647] COMPUTER IS A HAND-HELD COMPUTER

[2648] 29. A method as in Innovation 17 wherein said computer is ahandheld computer.

[2649] DISPLAY COMPUTER REQUESTS WEB PAGE FROM A REMOTE COMPUTER OVER ACOMPUTER NETWORK, REMOTE COMPUTER ACCESSES WEB PAGE, LAYS IT OUT, ANDDOWNLOADS IMAGES, STRINGS, LINKS, AND RELATIVE POSITIONS TO DISPLAYCOMPUTER, WHICH DISPLAYS THEM.

[2650] 30. A method as in Innovation 17 wherein:

[2651] the computer on which said scaled-down display is shown requestsa web page from a remote computer over a computer network;

[2652] said remote computer accesses said web page;

[2653] said remote computer lays said web page out to determine relativepositions corresponding to the relative positions at which said images,strings, and links are to be displayed; and

[2654] said remote computer downloads said images, strings, links, andrelative positions over said computer network to said display computer;and

[2655] said display computer draws said images, strings, and links atrelative positions on said screen determined as a function of saiddownloaded relative positions.

[2656] REMOTE COMPUTER SCALE DOWN IMAGES

[2657] 31. A method as in Innovation 30 wherein said remote computer:

[2658] scales down each of said displayed images to said scaled-downpixel size and downloads said scaled-down image to the display computer;

[2659] performs said layout based on a font metrics determined for eachstrings as a function of the size of the individual font bitmaps thatwill be used to compose the string image said display computer; and.

[2660] MULTIPLE DEPENDENT COMPUTER SYSTEM INNOVATION

[2661] 32. A computer system comprising:

[2662] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 31; and

[2663] one or more processors for executing said instructions.

[2664] MULTIPLE DEPENDENT PROGRAM RECORDED ON MACHINE READABLE MEDIAINNOVATION

[2665] A computer system comprising:

[2666] one or more computer readable memory including programinstructions for performing the functions of the method of any one ofthe innovations numbered 1 through 31.

[2667] BROWSE IN LANDSCAPE INSTEAD OF PORTRAIT ORIENTATION ON COMPUTINGDEVICE WITH AN OS THAT DRAWS FONTS IN PORTRAIT ORIENTATION AND WITH ASCREEN WITH HORIZONTALLY STRIPED SUBPIXELS, USING HORIZONTALLY SUB-PIXELOPTIMIZED FONT BITMAPS, SO THAT SCREEN HAS VERTICALLY STRIPED SUBPIXELS

[2668] A method of browsing web pages over the Internet comprising:

[2669] using as a browsing computer a computing device having:

[2670] a screen portrait orientation having a higher whole pixelresolution in the vertical direction than in the horizontal direction,said screen having pixels comprised of separately addressabledifferently colored sub-pixels, with each subpixel of a pixel extendingacross the width of the pixel one above the other, so that the sub-pixelresolution of the display is higher in the vertical direction than inthe horizontal direction;

[2671] an operating system which has software for displaying a graphicaluser interface on the said screen in said portrait orientation;

[2672] running browsing software on said browser computer which displaysone or more web pages on said screen in a landscape orientation,perpendicular to the portrait orientation, so the higher subpixelresolution will extend in a horizontal direction relative to the displayof the web page, including displaying the web pages in said landscapeorientation using

[2673] font bitmaps having a higher horizontal subpixel resolution thanvertical subpixel resolution, in which the luminosity of eachhorizontally-displaced, differently-colored, subpixel of a given pixelused in the display of a portion of a given character's shape is derivedas a function of the extent to which the outline of the givencharacter's shape covers that individual sub-pixel.

[2674] BROWSER ALSO DISPLAYS SUB-PIXEL OPTIMIZED IMAGES IN ROTATEDORIENTATION

[2675] A method as in the parent innovation wherein said browsersoftware also displays sub-pixel resolution images in the landscapeorientation, in which displays the luminosity of each differentlycolored subpixel of a given pixel is derived from a different area of ahigher resolution version of the same image.

[2676] OS ONLY DRAWS GUI IN PORTRAIT ORIENTATION

[2677] BROWSER DOWNLOADS FONTS BITMAPS WHICH HAVE BEEN SUBPIXELOPTIMIZED FOR DISPLAY WITH A HIGHER HORIZONTAL THAN VERITICAL SUBPIXELRESOLUTION

[2678] ON A COMPUTING SYSTEM HAVING A SCREEN WITH SUB-PIXEL RESOLUTIONWHICH IS HIGHER IN A FIRST DIRECTION THAN A PERPINDICULAR SECONDDIRECTION, AND HAVING AN OPERATING SYSTEM WHICH HAS A GUI WHICH CAN BEDISPLAYED IN A FIRST ORIENTATION IN WHICH THE FIRST DIRECTION ISVERTICAL, RECEIVING DIGITAL CONTENT INCLUDING A TEXT STRING, DISPLAYINGTHE INDIVIDUAL CHARACTERS OF THE TEXT STRING USING CORRESPONDING FONTSBITMAPS IN A SECOND, PERPENDICULAR ORIENTATION

[2679] OS CAN ONLY DISPLAY MAJORITY OF ITS GUI ELEMENTS IN FIRSTORIENTATION

[2680] OS CAN DISPLAY MAJORITY OF ITS GUI ELEMENTS IN BOTH FIRST ANDSECOND ORIENTATION

[2681] FONT BITMAPS HAVE BEEN SUBPIXEL OPTIMIZED FOR HIGHER SUBPIXELRESOLUTION IN THEIR HORIZONTAL DIRECTION

[2682] COMPUTER SYSTEM IS A HAND-HELD OR SMALLER COMPUTER SYSTEM

[2683] DIGITAL CONTENT IS LAID OUT FOR DISPLAY IN THE SECOND ORIENTATIONON A REMOTE COMPUTER AND IS DOWNLOAD TO THE COMPUTING SYSTEM FOR DISPLAY

[2684] TEXT STRING IS PART OF DIGITAL CONTENT INCLUDING IMAGES AS WELLAS TEXT AND IMAGES ARE ALSO DISPLAYED AT SECOND ORIENTATION

[2685] DIGITAL CONTENT INCLUDES WEB PAGES

[2686] DIGITAL CONTENT INCLUDES SCREEN IMAGES PRODUCED BY A COMPUTERAPPLICATION

[2687] ON A COMPUTING SYSTEM HAVING A SCREEN WITH SUB-PIXEL RESOLUTIONWHICH IS HIGHER IN A FIRST DIRECTION THAN A PERPINDICULAR SECONDDIRECTION, AND HAVING AN OPERATING SYSTEM WHICH HAS A GUIWHICH CAN BEDISPLAYED IN A FIRST ORIENTATION IN WHICH THE FIRST DIRECTION ISVERTICAL, RECEIVING DISPLAYING DIGITAL CONTENT INCLUDING TEXT IN ASECOND, PERPENDICULAR ORIENTATION, USING ONE OR MORE BITMAPS WHICH HAVEBEEN SUBPIXEL OPTIMIZED FOR HIGHER SUBPIXEL RESOLUTION IN THEIRHORIZONTAL DIRECTION

[2688] OS CAN ONLY DISPLAY MAJORITY OF ITS GUI ELEMENTS IN FIRSTORIENTATION

[2689] OS CAN DISPLAY MAJORITY OF ITS GUI ELEMENTS IN BOTH FIRST ANDSECOND ORIENTATION

[2690] COMPUTER SYSTEM IS A HAND-HELD OR SMALLER COMPUTER SYSTEM

[2691] TEXT STRING IS PART OF DIGITAL CONTENT INCLUDING IMAGES ANDIMAGES ARE ALSO DISPLAYED AT SECOND ORIENTATION

[2692] DIGITAL CONTENT INCLUDES WEB PAGES

[2693] DIGITAL CONTENT INCLUDES SCREEN IMAGES PRODUCED BY A COMPUTERAPPLICATION

[2694] DIGITAL CONTENT IS LAID OUT FOR DISPLAY IN THE SECOND ORIENTATIONON A REMOTE COMPUTER AND IS DOWNLOAD TO THE COMPUTING SYSTEM FOR DISPLAY

[2695] ON A HAND-HELD COMPUTING SYSTEM HAVING A SCREEN WITH A WHOLEPIXEL RESOLUTION WHICH IS HIGHER IN A FIRST DIRECTION THAN APERPINDICULAR SECOND DIRECTION, AND HAVING AN OPERATING SYSTEM WHICH HASA GUI WHICH CAN BE DISPLAYED IN A FIRST ORIENTATION IN WHICH THE FIRSTDIRECTION IS VERTICALL, DISPLAYING A DIGITAL CONTENT IN A SECOND,PERPENDICULAR ORIENTATION

[2696] OS CAN ONLY DISPLAY GUI ELEMENTS IN FIRST ORIENTATION

[2697] OS CAN DISPLAY GUI IN BOTH FIRST AND SECOND ORIENTATION

[2698] AN APPLICATION SEPATE FROM THE OS DISPLAYS THE DIGITAL CONTENTAND THAT APPLICATION GENERATES ITS OWN GRAPHICAL USER INTERFACE WHICH ISDISPLAYED AT THE SECOND ORIENTATION

[2699] DIGITAL CONTENT INCLUDES A WEB PAGE

[2700] WEB PAGE IS SCALED-DOWN BEFORE IT IS DISPLAYED

[2701] DIGITAL CONTENT IS LAID OUT FOR DISPLAY IN THE SECOND ORIENTATIONON A REMOTE COMPUTER AND IS DOWNLOAD TO THE COMPUTING SYSTEM FOR DISPLAY

What we claim is:
 1. A method of producing a subpixel-optimized bitmapof a shape suitable for display on a subpixel addressable screen havingpixels comprised of separately-addressable, differently-coloredsubpixels, said method comprising: associating a luminosity value witheach subpixel of the bitmap by: rasterizing the shape being representedto produce for each given subpixel a coverage value for the area in thebitmap corresponding to subpixel's location, which coverage valuerepresents the percent of the given subpixel's area in the bitmap thatis covered by the shape being represented; performing a color balancingfunction for said plurality of subpixels, which color balancingdistributes portions of the coverage values produced for individualsubpixels by said rasterization to nearby subpixels of different colorsto prevent color imbalance; and associating a luminosity value with eachsubpixel represented in said bitmap based on the coverage value producedfor each given subpixel by said raterization, as decreased by any ofsaid color balancing distributions from said given subpixel's coveragevalue to other subpixel coverage values and as increased by any of saidcolor balancing distributions to the given subpixel's coverage valuefrom other subpixel coverage values; wherein the percent, if any, of agiven subpixel's coverage value that is distributed by said colorbalancing varies as a function of the percent of said coverage valuethat causes color imbalance.
 2. A method of displaying—on a subpixeladdressable screen having pixels comprised of separately-addressable,differently-colored subpixels—digital content including text and/orimages represented by a mark-up language including tags that dictate theformat in which such content is to be displayed and tags that identifyimages to be displayed as part of said content, said method comprising:accessing said digital content, including accessing one or more images,from a device in which said content is stored or is generateddynamically; performing a down-scaling and subpixed-optimization processin which: each of said accessed images is a source image for theprocess; said process produces from each such source image acorresponding scaled-down, subpixel optimized image; each such scaledimage represents the source image from which it has been produced at alower pixel resolution than the pixel resolution of said source image;each such scaled image also represents said source image in asubpixel-optimized manner by causing the luminosity associated with eachsubpixel within a given pixel of the scaled image to represent theluminosity of the subpixel's color in a portion of the source image thatdiffers for each subpixel as a function of the subpixel's differentposition in the given pixel; and displaying said accessed digitalcontent on said subpixel-addressable screen in a format determined atleast in part by one or more tag in said content, including, as part ofsaid formatted display, displaying said scaled images in asubpixel-optimized manner on said screen.
 3. A method of displaying aweb page comprising: accessing a web page's content including one ormore images and one or more strings of displayable text; laying out theweb page in a layout space having a horizontal and a vertical layoutresolution, so as to determine a layout position for each of said imagesand each displayable character of said strings in said layout space,including: treating said images and said displayable characters ashaving respective layout sizes in said layout space; flowing displayablecharacters of said strings of across line boundaries, based on thelayout size of said displayable characters, by breaking portions ofstrings that cross a line boundary into separate single line strings,each of which fits on a single line in said layout space; and displayingat least a portion of said laid out web page on a display screen at aselected scale factor, including: displaying both said images and singleline character strings at locations in said display corresponding to thepositions at which they have been laid out in said layout space, scaledas a function of said selected scale factor; representing each of saidimages in said display by a corresponding bitmap in said display thathas a pixel size relative to the image's layout size determined as afunction of said selected scale factor; and representing a given singleline strings by an image composed from a plurality of separate fontbitmaps representing the characters in said string, where the image ofan individual character of said string has a pixel size relative to thecharacter's layout size determined as a function of said selected scalefactor; wherein: said display of a given portion of said laid out webpage is performed at each of at least two different selected scalefactors; and the shape and pixel alignment of a character represented byone of said font bitmap at a given scale factor has been selected toimprove readability as a function of the size of said font bitmap usedto represent the character at the given scale factor, causing a givencharacter in a given string in two displays of a given portion of saidweb page layout performed at different selected scale factors to bedisplayed with font bitmaps of different pixel size that represent thegiven character with different shapes and pixel alignments.